3
有了這個網站:屬性上__proto__覆蓋設置直接設置屬性在Chrome
<select><option>hi</option></select>
<script type="text/javascript">
var select = document.getElementsByTagName("select")[0];
select.__proto__.setValue = "foo";
select.setValue = "bar";
alert(select.setValue);
</script>
在Firefox和Opera,輸出爲「欄」,但在Chrome中,輸出是「富」。如果我跳過__proto__
定義,所有瀏覽器輸出「bar」。
如何讓Chrome(8.0)輸出屬性的對象特定值而不是原型上設置的值?
按照預期在Chrome 9和10中正常工作,所以這很可能是一個錯誤。作爲一個側面提示,不要混淆內建對象,對於HTMLElements來說這仍然適用。 – 2010-12-14 15:43:30
@Ivo:我可以確認它在Chrome 8中不起作用。作爲一個附註,我想這是幾個瀏覽器試圖實現相同的非標準功能時發生的情況 - 至少其中一個必然會出錯:-p – 2010-12-14 15:44:48
@AndyE我相信我可以在問題列表的某處找到一個錯誤,那就是如果我花了接下來的兩天來搜索它。 – 2010-12-14 15:47:08