2010-11-27 25 views
1

我有一個JavaScript例程,它動態創建一個HTML頁面,並完成它自己的頭部和腳本標記。Javascript重定向到動態創建的HTML

如果我把字符串的內容保存到一個文件中,並在瀏覽器中查看文件,一切都很好,但是如果我嘗試document.write(newHTML),它的行爲不一樣。動態newHTML頭部中的JavaScript非常複雜,我不能在這裏包括它......但是請相信我,如果我將它保存到文件中,它效果很好,但如果我嘗試用它替換當前頁面使用document.write。有什麼可能的缺陷可以促成這一點,我不考慮?我是否可能需要先刪除現有標題中的現有腳本標記?我是否需要手動重新呼叫onLoad?

同樣,當字符串被保存到例如'sample.html'並瀏覽到,但如果我設置了var Samp =「[REAL HTML HERE]」,它會很好用。然後說document.write(Samp); document.close(); JavaScript例程沒有正確執行。

任何提示,我可能會失蹤?

是否有另一種/更好的方式來動態替換頁面的內容,而不是document.write?

難道我不知何故重定向到新的頁面,儘管事實上,不存在於磁盤或服務器上,但只在內存中的字符串?我不願意將整個文件上傳到我的服務器,只是重新下載它來查看它。

我該如何使用javascript將當前頁面的當前內容替換爲包含複雜客戶端javascripting的全新內容,並且總是得到與將字符串保存爲服務器的結果完全相同的結果HTML文件並重定向到它?

如何將'重定向'爲僅存在客戶端字符串的HTML文件?

+0

它只是沒有工作,或者是新寫的頁面顯示,但表現很奇怪? – zjorzzzey 2010-11-27 20:26:15

回答

0

你可以這樣做:

var win=window.open("") //open new window and write to it 

var html = generate_html(); 

win.document.write(html) 
win.document.close(); 
0

也許eval()函數在這裏會有幫助嗎?沒有看到代碼就很難給出答案。

0

從未嘗試過這一點,但我認爲它應該是可能的。什麼可能使一些想法它的工作:

  • 確保通過發送符合W3C標準包含您的js文件是正確的標題發送/ MIME類型/ DOCTYPE
  • 即成的JavaScript中的有效方式,例如包含腳本標籤的頁面。

也許那麼它的工作原理。如果沒有,請在寫入新的HTML之前嘗試清除當前的HTML。

另外,看看其他人如何完成這項任務可能會有幫助。如果我提醒它正確,谷歌頁面本質上也是一個簡短的HTML頁面與一堆js。