【发布时间】:2010-12-14 15:31:28
【问题描述】:
有了这个 html:
<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 中,输出为“bar”,但在 Chrome 中,输出为“foo”。如果我跳过__proto__ 定义,所有浏览器都会输出“bar”。
如何让 Chrome (8.0) 输出属性的对象特定值,而不是原型上设置的值?
【问题讨论】:
-
在 Chrome 9 和 10 中按预期工作,所以这很可能是一个错误。附带说明,不要乱用内置对象,这仍然适用于 HTMLElements。
-
@Ivo:我可以确认它在 Chrome 8 中不起作用。作为旁注,我猜这就是当多个浏览器尝试实现相同的非标准功能时发生的情况 - 至少其中一个他们一定会弄错的:-p
-
@AndyE 我确信我可以在问题列表的某个地方找到一个错误,也就是说,如果我花了接下来的两天时间搜索它。
-
感谢 Ivo,更新到开发频道(当前为 9.0.*)修复了它。