Вызовите функцию после перезагрузки окна, используя ту же кнопку - PullRequest
0 голосов
/ 08 апреля 2019
$('#start').click(function () {
   window.location.href=window.location.href;
   runme();
});

Это моя простая цель, каждый раз, когда пользователь нажимает кнопку «Пуск», я хочу перезагрузить страницу, но при этом вызывать пользовательскую функцию rume.Пожалуйста, дайте мне знать, если это возможно, или есть другой способ.Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 08 апреля 2019

Каждый раз, когда вы перезагружаете страницу, JS запускается снова с самого начала, поэтому вы не можете напрямую запускать некоторые функции после перезагрузки страницы. Но для этого вы можете использовать sessionStorage
Итак, вы можете сделать что-то вроде:

$('#start').click(function () {
    sessionStorage.setItem('callRunMe', '1')
    window.location.href=window.location.href;
});
//On Page load 
$(document).ready(function () {
    if (sessionStorage.getItem('callRunMe')) {
        runMe();
        sessionStorage.removeItem('callRunMe');
    }
});
1 голос
/ 08 апреля 2019

Вы можете установить флаг в sessionStorage или localStorage и получить флаг после того, как документ готов.

var SOTRAGE_NAME = 'needRunme'

$('#start').click(function () {
  sessionStorage.setItem(SOTRAGE_NAME, true);
  runme();
});

$(document).ready(function(){
   var isNeedRunme = sessionStorage.getItem(SOTRAGE_NAME);
   if(isNeedRunme){
       runme();
   }
})
1 голос
/ 08 апреля 2019

Поместите runme внутрь $(document).ready и просто используйте location.reload(), чтобы перезагрузить страницу. Используйте localStorage, чтобы убедиться, что это происходит только при нажатии кнопки:

$(document).ready(() => {
    if (localStorage.getItem("clickedStart") runme();
});
$("#start").on("click", () => {
    localStorage.setItem("clickedStart", "true");
    location.reload();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...