发生错误时如何继续执行javascript

发生错误时如何继续执行javascript,javascript,wordpress,halt,Javascript,Wordpress,Halt,我使用WP本机函数WP_enqueue_script()在WP前端和后端加载所有脚本,以便它可以处理对同一脚本的重复调用,等等 其中一个问题是,其他程序员不使用此函数,直接从代码加载脚本,这会导致jQuery或jQuery UI加载两次,导致一系列错误 另一个问题是,非我所有的代码会触发一个错误并停止JavaScript的执行 简言之: 非我所有的代码中出现Javascript错误。 由于该错误,我的代码无法执行。 我希望我的代码绕过该错误并仍能执行。 有没有办法处理这些问题 完全不推荐,但您可

我使用WP本机函数WP_enqueue_script()在WP前端和后端加载所有脚本,以便它可以处理对同一脚本的重复调用,等等

其中一个问题是,其他程序员不使用此函数,直接从代码加载脚本,这会导致jQuery或jQuery UI加载两次,导致一系列错误

另一个问题是,非我所有的代码会触发一个错误并停止JavaScript的执行

简言之:

非我所有的代码中出现Javascript错误。
由于该错误,我的代码无法执行。
我希望我的代码绕过该错误并仍能执行。

有没有办法处理这些问题

完全不推荐,但您可以使用:

try {  
  //Some code likely to throw an error  
} catch (err) {}
这将允许以后的任何操作继续运行,尽管您通常也会发现错误。我无法捕捉错误的唯一情况是在使用数组并执行
somearray[I-1]
时,其中
I-1
将小于0。这只是因为它比使用条件来阻止它更干净

function ShieldAgainThirdPartyErrors($) {
    // Code you want protect here...
}

// First shot.
// If no error happened, when DOMContentLoaded is triggered, this code is executed.
jQuery(ShieldAgainThirdPartyErrors);

// Backup shot.
// If third party script throw or provoke an unhandled exception, the above function 
// call could never be executed, so, lets catch the exception and execute the code.
window.onerror = function () {

    ShieldAgainThirdPartyErrors(jQuery);

    return true;
}

如果你想在必要的时候扣两次扳机;)设置一个标志来表示第一次放炮成功并避免备份放炮,我认为在某些情况下,即使第三方代码遇到麻烦并触发第二次放炮,也可能会执行第一次放炮。

在代码执行的地方尝试一下。如果它们直接绑定到事件,那么您就倒霉了。您还可以在尝试添加jquery之前检测jquery是否已加载。请看:创可贴解决方案从来都不是好的解决方案。您最好尝试确定它为何加载两次并阻止它这样做。并非所有错误都可以“绕过”。错误通常表示某个错误阻止了代码的可执行性,甚至使其失去意义。你打算让计算机如何自动猜测如何解决这个问题?我认为这个问题的想法是:如果我的脚本工作正常并且只需要我加载的资源,我怎么做才能忽略其他脚本错误(例如,由其他插件添加的)?我的JS不依赖它们来正常工作,所以我不想修复它们,只想让我的脚本得到执行。如果我的代码是坏人,我很乐意使用
try catch
,但这次是触发错误的其他对等代码,虽然我不喜欢这个主意,因为它会给错误留下一些空白(尽管有标志信号),但我认为目前没有其他方法可以做到这一点,所以我一定会坚持你的回答:谢谢!