2017-11-30 17 views
0

Unten ist der Code, den ich für meine Website habe ich versuche zu bauen. Ich gehe weiter über das JavaScript, um zu sehen, ob ich Fehler habe, aber nicht finde, wo ich falsch gelaufen bin. Ich versuche, Benutzern, die zu meiner Site kommen, eine Hintergrundfarbe aus einem Dropdown-Menü auszuwählen. Ich versuche auch, es so zu machen, dass, wenn Benutzer zu meiner Webseite zurückkehren, der Hintergrund immer noch derselbe ist wie bei der Verwendung von Webspeicher. Hier ist mein Code unten:Javascript für Webspeicher Fehler verwenden

Code:

<script type="text/javascript"> 

    function setBackground() 
    { 
     localstorage.bgColor = document.getElementById("Color_list").value; 
     document.body.style.backgroundColor = localStorage.bgColor; 
    } 

    function loadBackground() 
    { 
     if (localStorage.bgColor.length == 0) 
     { 
      localStorage.bgColor = "White"; 
     } 
     else 
     { 
      document.body.style.backgroundColor = localStorage.bgColor; 
      document.getElementById("Color_list").value = localStorage.bgColor; 
     } 

    } 
</script> 





<body onLoad="javascript: loadBackground();"> 

    <select id="Color_list"> 

     <option value="White">White</option> 
     <option value="Gray">Gray</option> 
     <option value="Orange">Orange</option> 
     <option value="Purple">Purple</option> 

    </select> 

    <input type="button" value="Set Background color" onClick="javascript: setBackground();" /> 
</body> 

Antwort

1

Sie haben 2 Fehler in th

ist
  1. local anstelle von localstorage innerhalb setBackground Methode
  2. innerhalb loadBackground Methode tut dies

    if (!localStorage.bgColor) 
    { 
        localStorage.bgColor = "White"; 
    } 
    

insead von

if (localStorage.bgColor.length == 0) 
    { 
     localStorage.bgColor = "White"; 
    } 

Auch seine besseren setItem und getItem während des Zugriffs auf localStorage Krawatten

+0

Können Sie Ihre Antwort erklären? Warum '! LocalStorage.bgColor' verwendet? – Nabid

+1

Wenn Sie localStorage.bg nicht festgelegt haben, wird localStorage.bg.length einen Fehler ausgeben, wenn es versucht, auf die length -Eigenschaft eines obj zuzugreifen, das nicht vorhanden ist. Sie müssen also prüfen, ob eine Eigenschaft gesetzt ist oder nicht –

+0

Warum ist 'localStorage.bgColor.length == 0' ein Fehler? – Nabid

1

Sie haben ein Typo, versuchen Sie mit dieser Änderung

localStorage.bgColor = document.getElementById("Color_list").value; //it was localstorage earlier 
1

Verwendung localStorage.setItem('bgColor ', document.getElementById("Color_list").value);

an Wert im lokalen Speicher gesetzt

Verwandte Themen