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

时间:2013-02-03 20:33:31

标签: javascript wordpress halt

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

其中一个问题是其他程序员不使用这个函数并直接从他们的代码加载他们的脚本,这导致jQuery或jQuery-UI加载两次,导致一堆错误。

另一个问题是我不拥有的代码会触发错误并在此时停止执行JavaScript。

简而言之:

我不拥有的代码中出现Javascript错误 由于该错误,我的代码没有执行 我希望我的代码绕过该错误并仍然执行 有办法处理这些问题吗?

2 个答案:

答案 0 :(得分:4)

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;
}

如果你想在必要时拉动你的枪的两次触发器;)设置一个标志,表示第一次射击成功并避免备用射击,我认为在某些情况下你的第一次射击甚至可以被执行第三方代码陷入困境并触发第二枪。

答案 1 :(得分:0)

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

try {  
  //Some code likely to throw an error  
} catch (err) {}

这将允许继续运行之后的任何事情,但您通常也应该捕获错误。我不能捕获错误的唯一情况是使用数组并执行somearray[i-1],其中i-1小于0.这只是因为它比使用条件来防止它更清晰。 / p>