javascript - 在 IE 中的不同窗口上执行 try/catch

标签 javascript cross-browser

考虑一个包含 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/

相关文章:

javascript - 如何检查谷歌地图是否已满?

javascript - 设置 AngularJS UI Bootstrap Datepicker 时无法设置未定义的属性 'date'

javascript - 如何从 JavaScript 中的数组中删除元素?

css - 制作跨浏览器的css动画

javascript - 有没有办法覆盖刷新按钮操作?

css - 水平下拉菜单(子菜单)在 chrome、ie9、firefox 和 safari 中的定位不同

javascript - 地址的正则表达式

javascript - 如果回调被阻止,setInterval 的不同行为

jquery - 提供 html5 和 CSS3 特性的好库

javascript - 我可以在 ZingChart 中通过单个 renderfunction 调用来渲染多个图表吗?