2013-02-09 92 views
0

說我通過jquery添加HTML到元素。我怎樣才能讓它保存,所以每次加載頁面時,新添加的HTML元素仍然適用?如何將附加的html保存到文檔中?

+3

如果您希望這是瀏覽器或網絡的一般功能,那麼答案就是您不能。有可能通過使用本地存儲來自己破解它,但我懷疑這是你正在尋找的答案。 – jevakallio 2013-02-09 09:08:02

+0

使用'localStorage'在本地保存元素(或標籤內的內容)的值,並在新的頁面加載時恢復 – 2013-02-09 09:08:12

回答

0

你問這裏是保持在頁面重載的情況下,狀態

你可以這樣做多種方式
1.使用localStorage的保存附加HTML,然後在$(函數(){})檢索html並重新附加。
2.everytime你追加HTML改變文件的哈希編程這樣的話,只要你去該頁面你可以再次閱讀哈希和發送一個新的AJAX請求檢索HTML內容,然後將其追加

0

快速通過localStorage的做這件事的方式(這意味着你將需要modern browser

保存HTML

window.onunload = function() { 
    localStorage.setItem(
     "page_"+window.location.pathname, 
     document.body.innerHTML 
    ); 
}; 

加載HTML

window.onload = function() { 
    document.body.innerHTML = localStorage.getItem("page_"+window.location.pathname); 
}; 

這並不能保證100%的一致性,一個例子是,如果你有iframes指向外部域那麼他們src屬性不會被複制。

+0

真的很感謝它。我想知道我打算如何使用這個解決方案是多餘的。我有一個簡單的列表應用程序。當你添加一個任務時,文本被附加到一個li元素上,並且li元素被設置爲顯示一個矩形,裏面有文本和一個進度條。假設我添加了幾個任務,當我點擊其中一個矩形的時候,它會使用toggleClass添加一個類,它將使它看上去被選中。所以它會添加。選中我點擊的li元素。然後我會被帶到一個有「完成」按鈕的頁面。當我按下它時,它會顯示帶有滑塊的頁面。 – user974725 2013-02-09 09:30:09

+0

使用滑塊,我將在1-10之間進行選擇以確定我已完成的任務的多少。 10是最高的。如果我選擇10,我認爲它會使用.Selected類來針對特定任務,並使進度條顯示100%。然後,我希望這與您的解決方案保存。有更容易的方法嗎? – user974725 2013-02-09 09:31:26

+0

@ user974725保存結果的HTML標記不是這樣做的正確方法。您應該只保存滑塊的值和任何其他信息,例如所選元素。然後使用該信息正確呈現下次加載頁面時顯示的內容。 – lostsource 2013-02-09 09:36:38

0

它取決於它是一個什麼樣的網站,但是如果對DOM所做的更改是永久性的,並且更改只允許由註冊用戶進行,那麼我可能會將HTML片段寫入文件,並跟蹤數據庫中的更改。然後在每次請求頁面時渲染HTML片段。

相關問題