chrome版本: 24.0.1312.5
js代码: <input id="remove" onclick="remove();" type="button" value="移除"/>
在chrome点击按钮后 按钮本身移除了,而我并没有编写remove函数. 感觉很奇怪,于是用了以下代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>chrome bug</title>
</head>
<body>
<input id="remove" onclick="remove();" type="button" value="移除"/>
<script>
var t=document.getElementById('remove');
for(attr in t)
document.write(attr+'<br/>');
</script>
</body>
</html>
打印结果中查看到remove函数,原来chrome中button本身就有remove函数.难道是html5的新特性?
在firefox和safari中测试均没有发生上述情况。
为了查看remove的函数具体实现,用以下代码具体查看:
<script>
var t=document.getElementById('remove');
document.write(t.remove+'<br/>');
</script>
print:
function remove() { [native code] }
结果说明此函数是通过c++实现。
不知道这是不是chrome的一个bug , input如果是text类型,只要绑定onclick='remove()' 点击文本框,文本框也消失了,让开发人员莫名奇妙!
解决办法:
更改事件名,不让自己写的事件函数和内置的函数冲突。
<input id="remove" onclick="drop();" type="button" value="移除"/>
原文链接: https://www.cnblogs.com/BigIdiot/archive/2012/11/16/2773386.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/69625
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!