使用Chrome开发者工具中的时间轴,我使用了这一小段代码来记录事件内部HTML :
<!DOCTYPE html>
<html>
<head>
<script>
function test(){
var wrap = document.getElementById('wrapper');
wrap.innerHTML = "test";
}
</script>
</head>
<body>
<input type="button" value="click" onClick="test();"/>
<div id="wrapper"></div>
</body>
</html>
我可以看到,一旦测试方法运行,就会触发两个解析事件:
我使用的是 Chrome 版本 23.0.1271.64 m
这是令人期待的事情吗?这是 Chrome 开发者工具的错误吗?或者Chrome下有什么需要改进的地方?
经过一番尝试后,我猜测这与 Chrome 需要解析字符串“test”然后重新解析页面有关,或者可能只是添加字符串后的“wrap”元素有关。 innerHTML 是一个奇怪的函数,因为它允许添加任何内容,因此必须进行一些验证/解析。
如果您将函数更改为:
function test() {
var wrap = document.getElementById('wrapper');
var newtext = document.createTextNode("test");
wrap.appendChild(newtext);
}
...那么根本就不会发生解析事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)