innerHTML属性替换的文本是否实际由浏览器读取?

时间:2011-08-05 15:35:24

标签: javascript html

在此示例中,浏览器是否跳过文本“此文本将不会被打印”,因为有一个脚本会替换它?

<script>
function produceSongLyric(){
    var msg= 'Spent my money<br />Took my car<br/>Started telling her friends she\'s gonna be a star';
    return msg;
}

</script>

<span id="mySpanName" style="color:red">This text will not be printed</span>

<script>
    document.getElementById("mySpanName").innerHTML=produceSongLyric();
</script>
编辑:你不能粘贴到jsfiddle吗?

4 个答案:

答案 0 :(得分:5)

不,浏览器不会跳过它。

在脚本执行之前,无法知道它会被替换。

答案 1 :(得分:0)

没有......它找到了。见fiddle

答案 2 :(得分:0)

下面看一下:http://jsfiddle.net/nupul/gtN5w/您将看到文本被打印出来。只是脚本被执行了,显示器的60hz刷新频率可能会阻止你看到它;)

答案 3 :(得分:0)

不,浏览器不会跳过它。请记住,如果有些奇怪但有可能迫使Web服务器不是在一个网络数据包中发送所有文档,而是花一点时间发送最后一个脚本元素,可能浏览器想要显示它!

我建议您通过设置display:none; CSS属性使该跨度不可见,并在脚本结尾处将其删除。

另请注意,只有在抛出窗口加载事件后才应使用document.getElementById。