Можно ли добавить javascript для цикла / while для location.reload (); - PullRequest
0 голосов
/ 09 марта 2019

Мой сайт Wordpress содержит конфликтующие плагины. Поэтому, когда я щелкаю страницу в меню, она застревает, но исправляется после повторной загрузки страницы.

Мой подход заключается в автоматическом обновлении страницы (по нажатой ссылке меню), чтобы страница загружалась правильно.

После поиска в течение нескольких дней, я не нашел точного способа сделать это. Я использую

location.reload(true);

но он продолжает перезагружаться. Я пробовал также

location.reload(true);
window.stop();

, но загрузка останавливается до завершения загрузки страницы до 100%.

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

после 2 перезагрузок код js остановится

Надеюсь, кто-нибудь сможет мне помочь. Спасибо!

Ответы [ 3 ]

1 голос
/ 09 марта 2019

Попробуйте этот фрагмент JavaScript, он хранит счетчик перезагрузок в LocalStorage:

if(typeof(localStorage.getItem('rlcount')) == 'undefined'){
    localStorage.setItem('rlcount',0);
}
if(localStorage.getItem('rlcount') < 2){
    localStorage.setItem('rlcount',localStorage.getItem('rlcount')+1);
    window.location.reload();
}else{
    localStorage.removeItem('rlcount');
}

Однако учтите, что перезагрузка страницы не является хорошим исправлением ошибки.

0 голосов
/ 10 марта 2019

Спасибо, что нашли время ответить на мой вопрос, ребята ... Я нашел простой способ (но не цикл). Не уверен, что это нормально, но он работает, когда я добавил «return».

location.reload();
return;

При добавлении этой команды. он просто перезагружается один раз.

0 голосов
/ 09 марта 2019

Хотя я бы посоветовал вам попытаться устранить проблему с корнем, вызывающую описанное вами поведение, вы могли бы сделать что-то вроде следующего, чтобы дважды перезагрузить страницу:

window.onload = function() {
    if (!window.location.hash) {
        window.location = window.location + '#loadedOnce';
        alert("Reloading first time...");
        window.location.reload();
    } else if (window.location.hash === "#loadedOnce") {
        window.location = window.location.hash.replace("#loadedOnce", "#loadedTwice");
        alert("Reloading second time...");
        window.location.reload();
    } else if (window.location.hash === "#loadedTwice") {
        // Page reloaded twice, do whatever...
    }   
}

Это использует хеш вURL-адрес, поэтому он не требует использования localStorage API (хотя это также очень хороший подход, если браузер его поддерживает, и может работать лучше, если у вас уже есть хэши в URL-адресе).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...