簡體   English   中英

Javascript重定向到動態創建的HTML

[英]Javascript redirect to dynamically created HTML

我有一個JavaScript例程,可以動態創建HTML頁面,並帶有其自己的head和script標簽。

如果我獲取字符串的內容並將其保存到文件中,然后在瀏覽器中查看該文件,一切都很好,但是如果我嘗試使用document.write(newHTML),它的行為就不會一樣。 動態newHTML標頭中的javascript非常復雜,我無法在此處添加它。但是請相信我,如果將其保存到文件中,它會很好用,但是如果嘗試用它替換當前頁面,則不能使用document.write。 我沒有考慮的可能有哪些陷阱會導致這種情況? 我是否可能需要首先刪除現有標頭中的現有腳本標簽? 我需要手動重新調用onLoad嗎?

同樣,當將字符串保存到例如“ sample.html”並瀏覽至該字符串時,它的效果很好,但是如果我將其設置為var Samp =“ [REAL HTML HERE]”; 然后說document.write(Samp); document.close(); javascript例程無法正確執行。

關於我可能會缺少什么的任何提示?

除了document.write之外,還有其他/更好的方法來動態替換頁面的內容嗎?

盡管磁盤或服務器上不存在,但僅存在於內存中的字符串中,但我能以某種方式重定向到新頁面嗎? 我不想將整個文件上傳到我的服務器,只是為了再次重新下載以查看它。

如何使用javascript動態地以全新的內容(包括復雜的客戶端javascript)替換當前頁面的當前內容,包括復雜的客戶端javascript,並始終獲得與將字符串作為html文件保存到服務器並重定向后完全相同的結果要嗎?

如何“重定向”到僅作為客戶端字符串存在的HTML文件?

也許eval()函數在這里會有所幫助? 不看代碼就很難回答。

你可以這樣做:

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

var html = generate_html();

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

從未嘗試過,但是我認為應該是可能的。 關於使它起作用的一些想法:

  • 確保包含您的js的文檔以正確的標頭/ mimetype / doctype發送
  • 以有效的方式服務javascript,例如,通過發送包含script標簽的w3c有效頁面。

也許那就行了。 如果不是,請嘗試在寫入新HTML之前擦除當前HTML。

此外,查看其他人如何完成此任務可能會有所幫助。 如果我沒記錯的話,谷歌頁面本質上也是帶有一堆js的短HTML頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM