2015-04-02 9 views
1

Можно ли изменить переменную «a» на «true» без изменения источника страницы, чтобы она печатала «foo»?Javascript: перезагрузить страницу с измененным значением переменной

<html> 

<head> 
    <script> 
    var a = false; 
    if(a) document.write("foo"); 
    else document.write("bar"); 
    </script> 
</head> 

<body> 
</body> 

</html> 

Я могу изменить динамическое значение переменной из Chrome. Но как перезагрузить, чтобы увидеть «Foo», а не «бар»

+1

без изменения источника? нет. Изменив скрипт таким образом, чтобы он считывал значение состояния из 'localStorage',' sessionStorage', cookie, AJAX или использовал значение, предоставляемое на серверном языке? да. – zzzzBov

ответ

0

Вы можете использовать LocalStorage на большинстве современных браузеров см http://www.w3schools.com/html/html5_webstorage.asp

если вы планируете поддерживать старые браузеры, вы можете установить куки затем прочитать его, когда перезагрузка документа. http://www.w3schools.com/js/js_cookies.asp

редактировать: Попробуйте этот код

//function to check support for localStorage 
function checkLocalStorageSupport() { 
    try { 
     localStorage.setItem("x", "x"); 
     localStorage.removeItem("x"); 
     return true; 
    } catch (e) { 
     return false; 
    } 
} 
//function to read value of cookie 
function getCookie(cname) { 
    var name = cname + "="; 
    var ca = document.cookie.split(';'); 
    for (var i = 0; i < ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') c = c.substring(1); 
     if (c.indexOf(name) == 0) return c.substring(name.length, c.length); 
    } 
    return ""; 
} 

if (checkLocalStorageSupport()) { 
    if (localStorage.getItem('a') != null) 
     if (localStorage.getItem('a') == "true") //check that the value of localStorage is not null 
      document.write("foo");     //do operation if localStorage value is true 
     else 
      document.write("bar"); 
    else 
     localStorage.setItem('a', 'false'); 
} 
else { 
    if (getCookie('a') != null)      //check that the value of cookie is not null 
     if (getCookie('a') == "true") 
      document.write("foo");     //do operation if cookie value is true 
     else 
      document.write("bar"); 
    else 
     document.cookie = "a=false; expires=Thu, 31 Dec 2015 12:00:00 UTC"; //if no cookie exists set a cookie 
} 
+1

Это просто ссылки на потенциальные ответы; пожалуйста, разместите часть соответствующего кода, поскольку ссылки могут меняться со временем, делая этот ответ несущественным. – rfornal

+0

редактирование для отправки кода. Спасибо, rfornal –

0

Как должен работать? Вы не можете сохранить состояние перезагрузки со статической HTML-страницей и встроенным скриптом. Используйте файл cookie или какой-либо другой постоянный механизм для хранения состояния.

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