Ignore javascript syntax errors in a page and cont

2019-01-10 22:16发布

I develop plugins for WordPress. It uses some jquery in the user side (themes) as a jquery plugin. The problem is, when there is an javascript error with other plugins made by other autors, my plugin's javascript fails to execute.

And the worst thing is people consider that there is a serious fault with my plugin even though it works 100% fine with error handling conditional statements. But it is actually due to some other javascript syntax errors of some other WP plugin/theme authors.

Is there a way to continue execute my plugin JS ignoring other JS errors. Or can i have suggestions to handle this problem ??

enter image description here

11条回答
时光不老,我们不散
2楼-- · 2019-01-10 22:29

You should be able to swallow any error using the error event:

$(window).error(function(e){
    e.preventDefault();
});

I've never attempted this, but it should work in theory.

It should be noted that this probably isn't a great solution to your problem. It could be that your plugin is interfering with other plugins. It is, of course, possible that the errors are no fault of your own, but generally speaking (with publicly released plugins) not the case.

查看更多
Anthone
3楼-- · 2019-01-10 22:30
姐就是有狂的资本
4楼-- · 2019-01-10 22:35

A regular try catch statements won't work for these types of errors.

Possible workarounds:

Use inline-css to float the bar to the left instead of jQuery (I am not sure what the full function of your plugin is but if it just floats the bar to the left why not just use css?)

Have a invisible iframe which tries to run some code on the parent page. if it fails than alert the user(from within this iframe) that it wasn't your fault :)

查看更多
神经病院院长
5楼-- · 2019-01-10 22:47

This is worked for me:

try{
    //your code
}
catch(error)
{
    return true;
}
查看更多
一纸荒年 Trace。
6楼-- · 2019-01-10 22:49

Perhaps you could try putting your js in an html object, so that it's executed in a separate page. That probably won't help much if the js on the main page wont run to interact with the object. Just something to play with.

查看更多
该账号已被封号
7楼-- · 2019-01-10 22:50

Try :

window.onerror = function(){
   return true;
}

That is if you can include this before the bugged script has been executed.

查看更多
登录 后发表回答