我处理的脚本以我无法预测的方式添加到数百个不同的网站,特别是在iframe
中加载代码时。在我的代码中,我有一个try / catch块设置来处理异常。它是这样的:
var vals = {};
try {
vals.hostname = window.top.location.hostname; // will throw DOMException if loaded in iframe
< more code which might throw other exceptions >
} catch (e) {
if (e instanceof DOMException) {
vals.hostname = window.location.hostname;
} else {
<do something different>
}
}
e instanceof DOMException
在Chrome上运行真棒,但事实证明,在Firefox和Safari上,e instanceof DOMException
在这些浏览器上为false
。我已经做了很多搜索,但由于某种原因,似乎无法找到任何解释如何以浏览器无关的方式检查异常类型的人。
编辑:好的,Chrome正在抛出DOMException
,但Firefox(可能是Safari)只是抛出一个通用的&#34;错误&#34;:
Error: Permission denied to access property "hostname"
我认为这意味着我无法对其他浏览器上的特定错误做任何事情。