2010-07-17 69 views
2

當我在腳本標記下直接將下面的代碼寫入我的html頁面時,字符串「test」會附加到我的頁面而不會替換其內容(1):Javascript document.write Firefox中的怪異行爲

document.write("test"); 

但是,如果我把同樣的代碼放到像一個單獨的JavaScript文件(2):

<script src="http://127.0.0.1/whatever.js" type="text/javascript"></script> 

突然同樣的代碼重寫我的整個頁面。

有沒有辦法從遠程文件執行document.write()並得到結果(1)?

謝謝你的時間。

+0

您準確地包含腳本的位置?文件的哪一部分? – 2010-07-17 11:17:44

+0

即。 – Benjamin 2010-07-17 12:08:09

+0

你真的不應該使用'document.write'。它有一些用途,但不是用於導入頁面的腳本。 – Pointy 2010-07-17 12:26:11

回答

3

如果在頁面渲染時使用doc.write,它將插入或追加字符串。如果在渲染後或在window.onload之後使用doc.write,則它將基本上再次開始渲染過程,並覆蓋該頁面。

這是我的猜測,你正在加載腳本時獲得異步行爲,並且它不會在onload之後執行。我無法重新創建您的問題。

+0

謝謝你真的發現是我的問題,我可以成功解決它。 – Benjamin 2010-07-18 00:46:13

0

您可能會將您的腳本包含在頁面頂部。它獲取document.write()的東西,從而寫入文本而不是追加行爲。

+0

你能給我一個概念證明嗎? – Benjamin 2010-07-17 12:08:37

0

更安全的解決方案是將文檔元素附加到頁面 - 應始終工作