2017-02-11 80 views
1

我想弄清楚如何在本地存儲中使用vanilla JavaScript完成DOM更改,但至今無法弄清楚。本地存儲 - 使用JavaScript保存DOM更改

這是從DOM代碼中做了幾個更改的簡短剪切。

該功能由網頁上的按鈕調用。

function myFunction() 
{ 
    document.body.style.backgroundColor = "black"; 

    var element = document.getElementsByTagName('input'); 
    for (var i = 0; i < element.length; i++) { 
    element[i].style.color = "black"; 
    element[i].style.backgroundColor = "#565969"; 
    element[i].style.borderColor = "black"; 
    element[i].style.boxShadow = "inset 0 0 5px black";} 
} 

看到用兩個CSS之間切換更容易,但想知道如何解決上述問題。

+0

只需將樣式存儲在JSON中。你甚至可以設置元素的樣式,然後將它的'style'參數串化並保存。 – Carcigenicate

+0

爲什麼你不能使用類和樣式表規則? – charlietfl

回答

1

您可以首先檢查DOM值的localstorage,如果有的話您使用它,否則您應用新的DOM值。

function myFunction() { 
    var DOMValues = {}; 
    var storageContent = localStorage.getItem('cssProps'); 

    if (storageContent) { 
     DOMValues = JSON.parse(storageContent); 
     manipulateDOM(DOMValues); 
    } else { 
     DOMValues = { 
     backgroundColor: 'blue', 
     color: 'black' 
     }; 

     localStorage.setItem('cssProps', JSON.stringify(DOMValues)); 
     manipulateDOM(DOMValues); 
    } 
} 


function manipulateDOM (props) { 
    document.body.style.backgroundColor = props.backgroundColor; 

    var element = document.getElementsByTagName('input'); 

    for (var i = 0; i < element.length; i++) { 
     element[i].style.color = props.color; 
     element[i].style.backgroundColor = props.backgroundColor; 
    } 
} 
+0

這是有效的,但還有一個問題,我忘了添加到我的第一篇文章。如果在同一個網頁上輸入新頁面,那麼如何加載保存本地存儲?另外,如何刪除對本地存儲的更改,換句話說,使用網頁上的常規CSS。 – Gascogne

+1

'localStorage.removeItem('cssProps')'將刪除項目 – akinjide

+1

如果頁面1和頁面2使用相同的JS腳本,則只需檢查localStorage內容的功能,然後從第1頁或第2頁 – akinjide