Javascript execScript尝试/捕捉IE 8中的奇怪之处

Javascript execScript尝试/捕捉IE 8中的奇怪之处,javascript,Javascript,我在try/catch块中使用execScript来执行一段字符串化的JavaScript。如果字符串中存在javascript错误,则在随后重新加载页面时,execScript将在IE 8中的catch块中返回以下错误: '错误:由于错误80020101,无法完成操作。' 在IE8中是否有其他全局评估javascript的方法不会引发像上面那样的一般错误。我知道使用eval不会起作用,因为它不会在全局上下文中评估javascript 下面是关于我的代码的一些设置,fn是要计算的字符串: //

我在try/catch块中使用execScript来执行一段字符串化的JavaScript。如果字符串中存在javascript错误,则在随后重新加载页面时,execScript将在IE 8中的catch块中返回以下错误:

'错误:由于错误80020101,无法完成操作。'

在IE8中是否有其他全局评估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
   }
}

当IE的脚本引擎遇到无效的javascript(我最近的例子:试图通过COM直接通过SHDocVw.dll调用无效的javascript或不存在的函数)时,我看到了这个错误。因此,我将该错误消息解释为IE8只是简单地认为您正在给它提供无效的东西,并且无论发生什么都会阻塞

这可能是问题所在吗?虽然
document.defaultView.eval.call
在IE9中对我来说仍然很好


我的猜测是,
fn
中有一个bug,也许还有什么东西超出了范围?如果你传递它认为无效的东西,我相信它总是会抛出那个无用的错误。
fn
是否自行执行任何空值检查/错误处理?

我看到当IE的脚本引擎遇到无效javascript时会发生此错误(我最近的示例:试图通过COM直接通过SHDocVw.dll调用无效javascript或不存在的函数)。因此,我将该错误消息解释为IE8只是简单地认为您正在给它提供无效的东西,并且无论发生什么都会阻塞

这可能是问题所在吗?虽然
document.defaultView.eval.call
在IE9中对我来说仍然很好

我的猜测是,
fn
中有一个bug,也许还有什么东西超出了范围?如果你传递它认为无效的东西,我相信它总是会抛出那个无用的错误。
fn
是否自己进行空值检查/错误处理