Aligatro
@Aligatro
Turn food and coffee into software...

Как выполнить функцию только 1 раз?

Здравствуйте. Проблема заключается в следующем, из движка wordpress я выдрал код который срабатывает при загрузке страницы, в этот код я положил функцию которая собственно и перезагружает страницу и таким образом я попадаю в бесконечный цикл перезагрузки. Так как разбираюсь я в js очень паршиво, решить эту банальную задачу мне не удалось. В общем пожалуйста посмотрите и подскажите где тут надо подправить.

addLoadEvent = function (func) {
    if (typeof jQuery != "undefined") jQuery(document).ready(func);
    else if (typeof wpOnload != "function") {
        wpOnload = func;
    } else {
        var oldonload = wpOnload;
        wpOnload = function () {
            oldonload();
            func();
        }
    }
};
addLoadEvent(function () {
    parent.location.reload(true);
});
addLoadEvent.preventDefault();


Спасибо.
  • Вопрос задан
  • 3720 просмотров
Решения вопроса 2
madmages
@madmages
Человек прямоходящий
кроме как передавать какуюнибудь переменную в гете или посте - никак. когда страница обновляется то обновляются все данные и все переменные скрипта и она по просту ни не знает что было раньше до перезагрузки. Короче - извращенство еще то.
Ответ написан
ikeagold
@ikeagold
Ikeagold Web-Dev
В addLoadEvent будет так
if(localStorage.getItem("reloadkey") !== "1") {
   localStorage.setItem("reloadkey", "1"); 
    parent.location.reload(true);
}

Я еще решил добавить, вдруг вам надо будет поддержка старых или не поддерживающих ЛС функционал браузеров то надо это обработать как показано в примере w3schools:
if(typeof(Storage) !== "undefined") {
    // Code for localStorage/sessionStorage.
} else {
    // Sorry! No Web Storage support..
    // Maybe use cookie?
}

Или как у нормальных людей сделанно тут Локальное Хранилище
На данный момент не все браузеры поддерживают эту технологию:
IE 8.0+
Firefox 3.5+
Safari 4.0+
Chrome 4.0+
Opera 10.5+
iPhone 2.0+
Android 2.0+
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы