2015-09-22 5 views
2

Могу ли я запустить javascript-код после перезагрузки страницы?Запустить JS после перезагрузки страницы

В моем случае я хочу, чтобы ввести код в адресной строке через javascript: <<CODE>>

перезагрузить страницу несколько раз и проверьте, если кнопка со специальным идентификатором существует и щелкнуть по нему. Вот мой код:

function check() { 
    if(new Date().getTime >= 1442949420000) { 
     var loginbtn = document.getElementById('loginbutton'); 

     if(loginbtn){ 
      loginbtn.click(); 
     } else { 
      console.log('button not yet here - reload'); 
      window.location.reload(); 
      check(); 
     }; 
    } else { 
     console.log('to early - reload'); 
     window.location.reload(); 
     check(); 
    }; 
}; 
check(); 

Проблема заключается в том, что перезагружается страница после window.location.reload() и функция check() никогда не вызывается, так что страница просто перезагружается один раз.

Или есть служба, которая вводит мой скрипт в URL?

+1

Ваша функция будет вызвана в любом случае после перезагрузки, потому что вы называете ее ниже декларации. нет необходимости называть его ниже перезагрузки. – guramidev

+0

Если вы вызываете его из адресной строки (как в ручном режиме), я не знаю, как заставить его работать в браузере, так как сценарии JS перестают выполняться при перезагрузке страницы. Вы можете сохранить состояние (например, cookie, localstorage и т. Д.) И перезапустить скрипт (ввести снова, сохранить в букмаркете), чтобы выбрать, откуда он остановился. Альтернативой было бы использовать расширение браузера (например, usercripts, tampermonkey и т. Д.) Или использовать не-браузер для навигации/манипулирования страницей (например, phantomjs, casper и т. Д.) – arcyqwerty

+0

Я не думаю, что это будет работать так, как вы думаю, что это так, Гурами. Страница будет RELOAD и не будет в той же точке в методе JavaScript. – mrunion

ответ

6

Вы можете добавить фрагмент URL-адрес в адресную строку, а затем перезагрузить страницу. Таким образом, до перезагрузки, вы будете в http://yoursite.com/yourPage, а после перезагрузки вы можете быть в http://yoursite.com/yourPage#reload. Вот простой рабочий пример что-то вдоль этих линий:

document.getElementById("clickMe").onclick = function clicked(){ 
 
    \t window.location.hash = 'reload'; 
 
    \t window.location.reload(); 
 
    } 
 
    
 
    //When the document has loaded, call the function 
 
    document.addEventListener("DOMContentLoaded", function(event) { 
 
    \t if(window.location.hash == "#reload"){ 
 
    \t \t console.log("The Page has been reloaded!"); 
 
    \t }else{ 
 
    \t \t console.log("The page has a new hit!"); 
 
    \t } 
 
    });
<button id="clickMe" type='button'>click</button>

При нажатии на кнопку, хэш добавляется в расположение окна, а затем страница перезагружается, с URL фрагмент прилагается. Затем я решаю в функции готовности документа, если страница была перезагружена или нет. Обязательно проверьте его локально.

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