我正在开发一个在 Internet Explorer 中中断的遗留应用程序。它有以下代码:
脚本 1: /* Call script 2 */; x.a(b)
脚本 2: eval(script3)
脚本 3: var x = x || {}; x.a = function(){ ... }
在 Firefox 中,这按预期工作。
然而,在 Internet Explorer 中,它会因为说“x 未定义”而失败(这被大大简化了)。我将它追溯到代码中的这一点,并注意到它x
在脚本 3 中定义,但随后在堆栈中返回到脚本 2,它失去了它的可用性/范围(我通过将 console.log 语句放在两者中进行测试 - IE 是脚本 3 中的那个没问题,但脚本 2 中的那个崩溃了)。
Internet Explorer 和/或该eval()
功能会导致这种情况发生,我有哪些解决方法?