我在 FF 3.6 和 IE 8 中测试了以下代码。前者警报 true
,后者警报 false
。这是为什么?如何在两个浏览器中实现相同的行为?谢谢!
<!DOCTYPE html>
<html>
<head>
<script>
alert(window.location instanceof Location);
</script>
</head>
<body>
</body>
</html>
最佳答案
编辑:关于您问题下的评论,听起来您需要测试 DOM 元素和 Location 对象之间的差异。
使用 nodeType
属性测试 DOM 元素可能会更好。
if( obj.nodeType ) {
// it was a DOM element
}
然后,如果未找到 nodeType
,您可以测试各种属性,只是为了确定它是 location
对象。
if( obj.nodeType ) {
// it was a DOM element
} else if( obj.hostname && obj.pathname ) {
// it was a location object
} else {
// some ERROR
}
<小时/>
原始答案:
这对我在 Chrome、Safari、Firefox 中有效:
Object.prototype.toString.call(window.location) == '[object Location]';
不过,我现在无法在 IE 中进行测试。
这是 ECMAScript 规范 Section 8.6.2 中注明的方法用于获取内部[[Class]]
属性名称。
关于javascript - 为什么 "window.location instanceof Location"在 IE 中显示为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630313/