我只是想分享一个我在数据表组件中解决的错误。
显然,当数据表脚本出现问题时,它会调用 _fnLog 并将错误输出到控制台。
这是函数的代码:
function _fnLog(oSettings, iLevel, sMesg) {
var sAlert = (oSettings === null) ?
"DataTables warning: " + sMesg :
"DataTables warning (table id = '" + oSettings.sTableId + "'): " + sMesg;
if (iLevel === 0) {
if (DataTable.ext.sErrMode == 'alert') {
alert(sAlert);
}
else {
throw sAlert;
}
return;
}
else {
if (console !== undefined && console.log) {
console.log(sAlert);
}
}
}
注意这里的最后几行是检查“console”是否存在,然后执行 console.log 操作。在 IE 中,控制台对象不存在,除非我们正在运行调试器。这使得发现这个错误变得非常困难和烦人。无论如何,您不能像那样引用“控制台”。IE 无一例外地停止脚本。您必须使用“window”对其进行限定,以便正确的脚本是
if (window.console !== undefined && console.log) {
window.console.log(sAlert);
}
我希望这会有所帮助,因为我只花了一个小时在这上面:)
埃亚尔