我在 try/catch 块中使用 execScript 来执行一段字符串化的 JavaScript。如果字符串在 execScript 中存在 javascript 错误,则在随后重新加载页面时,将在 IE 8 的 catch 块中返回以下错误:
“错误:由于错误 80020101,无法完成操作。”
是否有任何其他方法可以在 IE 8 中全局评估 javascript,不会引发像上面那样的一般错误。我知道使用 eval 将不起作用,因为它不会在全局上下文中评估 javascript。
下面是关于我的代码的一些设置,fn 是要评估的字符串:
// fn is defined somewhere above this code
function globalEvaluation() {
if(document.defaultView) {
document.defaultView.eval.call(undefined, fn);
} else if (document.parentWindow) {
document.parentWindow.execScript(fn);
}
}
return function() {
try {
globalEvaluation();
} catch(e) {
// do some error handling
// in IE 8 I get the 80020101 error
}
}