考虑一个包含 iframe 的页面。 iframe 的内容可能如下所示
<script type="text/javascript">
window.foo = function () {
nonExisting();
};
window.bar = function () {
throw "An error!";
};
</script>
现在,我想执行这样的操作:
try {
iframe.contentWindow.foo();
} catch (e) { console.log('ok'); }
和
try {
iframe.contentWindow.bar();
} catch (e) { console.log('ok'); }
这是我得到的:
- Chrome/Firefox/Opera - 'ok', 'ok'
(预期行为) - IE8 - “预期对象”错误,未捕获异常
WTF 是怎么回事?当我使用 try/catch block 时,这怎么可能是未捕获的异常?那是一个错误吗?或者规范中是否有任何内容允许这种行为?
最重要的是:我能让它正常工作吗?
最佳答案
那是因为你打错了:“一个错误”!
。
如果我在模拟 IE8 的 IE9 上运行时没有那个拼写错误,它会工作:http://jsfiddle.net/vsSgE/3/ .
关于javascript - 在 IE 中的不同窗口上执行 try/catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7795377/