hasOwnProperty在FF中返回false

时间:2013-10-05 23:35:00

标签: javascript internet-explorer firefox dom hasownproperty

我正在尝试为我的框架创建一个方法,该方法将对元素中的文本执行某些操作,但在FF和IE中存在问题。

<div id="myDiv" style="border: 1px solid red;">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit lacus non hendrerit cursus.
</div>

<script>
    console.log(document.getElementById('myDiv').hasOwnProperty("innerHTML"));
</script>

这在FF和IE中返回false。虽然它在Chrome中返回true。想法为什么会这样?

1 个答案:

答案 0 :(得分:2)

从Chrome 43开始,根据规范,innerHTML属性位于Element.prototype(作为getter / setter对),而不是元素实例。 Firefox和IE正确实现了规范。 Chrome违反了规范,因为他们声称从JS到C ++的调用如果将它放在原型上会更慢(尽管在实践中,SpiderMonkey设法使得调用比V8更快地用于DOM属性获取者)。

有关此更改的详细信息,请参阅:https://developers.google.com/web/updates/2015/04/DOM-attributes-now-on-the-prototype?hl=en