2011-08-05 17 views
0

在這個例子中,瀏覽器跳過了「這段文字不會被打印出來」的文字,因爲有一個腳本可以替代它嗎?innerHTML屬性替換的文本實際上是由瀏覽器讀取的嗎?

<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嗎?

+0

使用右鍵單擊/粘貼粘貼到jsFiddle。 – RichieHindle

回答

5

不,瀏覽器不會跳過它。

它無法知道它將被替換,直到腳本執行。

0

不......它發現它。看到這個fiddle

+0

標記爲PURE DUPLICATE;)完全相同的東西!!!! – PhD

+0

@Nupul哇。甚至沒有看到你的帖子(答案 - >點擊提交 - >繼續工作的其他東西),但至於「完全相同的事情」,它不是。 Mine充當斷點,因此您可以看到實際打印在頁面上的「此文本將不會被打印」。 –

+0

Aaah ...我也是......我可以看到它:) – PhD

0

不,瀏覽器不會跳過它。請記住,如果有些奇怪但可能會迫使Web服務器發送一個網絡數據包中的所有文檔,但需要一點時間才能發送最後一個腳本元素,那麼瀏覽器可能會顯示它!

我建議您通過設置display:none; CSS屬性使該跨度不可見,並在腳本結尾處將其刪除。

另請注意,只有在引發窗口加載事件後才應使用document.getElementById。

相關問題