Я хотел бы написать код javascript, способный что-то сделать на любом window.onpopstate или window.onload, но никогда дважды (обратите внимание, что chrome запускает событие popstate как onload и при нажатии на кнопку возврата навигации)Сделайте что-нибудь на window.onpopstate или window.onload, но никогда не дважды
Я хотел бы, чтобы это было совместимо для основных современных браузеров (IE10 светлячок хром опера сафари)
и я предпочел бы не использовать любую библиотеку - даже не JQuery.
Нечто подобное (но с правильным синтаксисом, конечно):
window.onload || window.onpopstate = function(){
window.alert("hello world");
}
Благодарности
EDIT 1
С ур предложения я попытался это:
var ranAlready=false;
window.onload = function(){
if (!ranAlready){
window.alert("onload was true");
ranAlready=true;
}
};
window.onpopstate = function(){
if (!ranAlready){
window.alert("popstate was true");
ranAlready=true;
}
};
Но теперь я не уверен, как установить переменная обратно в ложь .. Потому что это зависит от браузера и так далее ..
EDIT 2
мне нужно работать больше, чем когда-то, потому что пользователь может нажать некоторые АЯКС ссылки и т.д. страница не обновится, но URL изменится, и, таким образом, он может нажать кнопку «Назад». Это означает, что в какой-то момент переменная должна быть установлена на значение false, но я не знаю, когда ..
Использование переменной для проверки побежал ли это уже? – SLaks
, что будет работать? я запутался becasue, я не знаю, как управлять потоком времени, например, будет ли эта переменная принимать значение до или после или в то же время, что я проверяю его ..? – fartagaintuxedo
и как вернуть его обратно в false.? – fartagaintuxedo