0

我的网站按需加载动态 js 文件,例如当前显示的页面。但是所有 js 库的配置文件每次都加载到每个页面上。在缺少某些库的情况下,一切都运行良好。

脚本在错误行停止执行。

样本:

$('id').library1({}); //This method doesn't exist

$('id2').library2({}); // This method is not executed

当第一个对象不存在时,如何执行第二个对象方法?

4

3 回答 3

0

您必须捕获错误

try { $('id').library1({}); } catch(e){} 
$('id2').library2({}); 

或在执行之前检查该方法是否存在

var elem = $('id');
if (elem.library1) elem.library1({});
$('id2').library2({}); 
于 2013-09-19T15:13:11.313 回答
0

捕获并记录/抑制您收到的第一个错误,以执行第二个和任何后续调用:

try{
    $('id').library1({});
}
catch(e) { console.log(e); /* capture, log, suppress error. */ }

$('id2').library2({});
于 2013-09-19T15:13:16.963 回答
0

在尝试调用它(并触发异常)之前测试该方法是否存在:

if (typeof $.fn.library1 == "function")
    $('id').library1({});
else
    ; // in case the method doesn't exist

// this method is still executed
$('id2').library2({});
于 2013-09-19T15:15:26.760 回答