2013-03-26 3 views
2

Это веб-страница, на которой вы можете выбрать backgroundpicture из трех переключателей. Я хочу сохранить выбранный в localstorage, поэтому, когда страница обновляется, последнее выбранное фоновое изображение стоит. Это не так, и я не понимаю, почему? Заранее спасибо :)Переменные, хранящиеся в localstorage, исчезают при обновлении страницы.

<!DOCTYPE html> 
    <html manifest="my.manifest"> 
    <head> 
    <script src="modernizr.js"></script> 

    <script> 
    function setBg() { 
     myForm = document.getElementById("bgList"); 
     for (var i = 0; i < myForm.land.length; i++) { 
      if (myForm.land[i].checked) { 
       break 
      } 
     } 
     document.body.style.backgroundImage="url('" + myForm.land[i].value + "')"; 

     if (Modernizr.localstorage) { 
      localStorage.setItem("background", i); 
      //alert(localStorage.getItem("background")); 
     } 
     else{ 
      alert("Can not be saved to localstorage!"); 
     } 
    } 
    </script> 
    </head> 

    <body> 

    // Sørger for å velge et bakgrunnsbilde når siden lastes 
    <script src="modernizr.js"> 
     window.onload = function(e){ 
      mittLand = 0; 
      if (localStorage.getItem("background") != null) { 
       mittLand = parseInt(localStorage.getItem("background")); 
       alert(mittLand); 
      } 
      myForm = document.getElementById("bgList"); 
      myForm.land[mittLand].checked=true; 
      setBg(); 
     } 
    </script> 

    <form id="bgList"> 
     <h1>Velg ditt favorittland</h1> 
     <input type="radio" name="land" value="norge.png" onClick="setBg()">Norge</input> 
     <input type="radio" name="land" value="sverige.png" onClick="setBg()">Sverige</input> 
     <input type="radio" name="land" value="danmark.png" onClick="setBg()">Danmark</input> 
    </form> 

    </body> 
    </html> 

ответ

1

Не понимаю, какая часть не работает? предупреждение отображает выбранный параметр правильно, но, поскольку вы делаете предупреждение перед установкой фона, тогда фон не является стилем во время предупреждения, после того как вы нажмете предупреждение, изображение будет установлено правильно.

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://modernizr.com/downloads/modernizr-latest.js"></script> 

    <script> 
     function setBg() { 
      myForm = document.getElementById("bgList"); 
      for (var i = 0; i < myForm.land.length; i++) { 
       if (myForm.land[i].checked) { 
        break 
       } 
      } 
      document.body.style.backgroundImage="url('" + myForm.land[i].value + "')"; 

      if (Modernizr.localstorage) { 
       localStorage.setItem("background", i); 
       //alert(localStorage.getItem("background")); 
      } 
      else{ 
       alert("Can not be saved to localstorage!"); 
      } 
     } 
    </script> 
</head> 

<body> 

// Sørger for å velge et bakgrunnsbilde når siden lastes 
<script> 
    window.onload = function(e){ 
     mittLand = 0; 
     if (localStorage.getItem("background") != null) { 
      mittLand = parseInt(localStorage.getItem("background")); 
      alert(mittLand); 
     } 
     myForm = document.getElementById("bgList"); 
     myForm.land[mittLand].checked=true; 
     setBg(); 
    } 
</script> 

<form id="bgList"> 
    <h1>Velg ditt favorittland</h1> 
    <input type="radio" name="land" value="norge.png" onClick="setBg()">Norge</input> 
    <input type="radio" name="land" value="sverige.png" onClick="setBg()">Sverige</input> 
    <input type="radio" name="land" value="danmark.png" onClick="setBg()">Danmark</input> 
</form> 

</body> 
</html> 

Пробовал этот код, он работает. Обновлено с modernizr

+0

Предупреждения предназначены только для тестирования и не важны. Важно то, что когда я сохранил информацию в localstorage, я хочу ее восстановить после обновления страницы. Но (localStorage.getItem («background») всегда возвращает «null». Я не понимаю, почему. –

+0

Я пробовал код выше, он просто удаляет модернизатор, и он работает – Astronaut

+0

Большое спасибо! = D Вы понимаете, почему это работает без модернизатора? На самом деле хочу понять все это :) –

Смежные вопросы