我的网站按需加载动态 js 文件,例如当前显示的页面。但是所有 js 库的配置文件每次都加载到每个页面上。在缺少某些库的情况下,一切都运行良好。
脚本在错误行停止执行。
样本:
$('id').library1({}); //This method doesn't exist
$('id2').library2({}); // This method is not executed
当第一个对象不存在时,如何执行第二个对象方法?
我的网站按需加载动态 js 文件,例如当前显示的页面。但是所有 js 库的配置文件每次都加载到每个页面上。在缺少某些库的情况下,一切都运行良好。
脚本在错误行停止执行。
样本:
$('id').library1({}); //This method doesn't exist
$('id2').library2({}); // This method is not executed
当第一个对象不存在时,如何执行第二个对象方法?
您必须捕获错误
try { $('id').library1({}); } catch(e){}
$('id2').library2({});
或在执行之前检查该方法是否存在
var elem = $('id');
if (elem.library1) elem.library1({});
$('id2').library2({});
捕获并记录/抑制您收到的第一个错误,以执行第二个和任何后续调用:
try{
$('id').library1({});
}
catch(e) { console.log(e); /* capture, log, suppress error. */ }
$('id2').library2({});
在尝试调用它(并触发异常)之前测试该方法是否存在:
if (typeof $.fn.library1 == "function")
$('id').library1({});
else
; // in case the method doesn't exist
// this method is still executed
$('id2').library2({});