我想編寫一個JavaScript代碼,可以在window.onpopstate或window.onload上做任何事情,但不會兩次(請注意,chrome觸發popstate事件同時onload並單擊後退導航按鈕時)在window.onpopstate或window.onload上做些什麼,但從來沒有兩次
我想這是主要的現代瀏覽器(IE10火狐鉻歌劇Safari瀏覽器)
兼容,我寧願不使用任何圖書館 - 甚至沒有jQuery的。
像這樣的東西(但當然正確的語法):
window.onload || window.onpopstate = function(){
window.alert("hello world");
}
感謝
編輯1
與UR建議,我已經試過這樣:
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;
}
};
但現在我不知道如何設置可變後假.. cuz它依賴於瀏覽器等..
EDIT 2
我需要它的工作一次以上,這是因爲用戶可能會點擊一些Ajax鏈接,等等頁面不會刷新,但URL會改變,因此他可能會點擊後退按鈕。這意味着變量必須在某個時刻重置爲false /但我不知道什麼時候...
使用一個變量來檢查其是否已經運行? – SLaks
這會工作嗎?我感到困惑,因爲我不知道如何控制時間流量,就像,該變量將採取值之前或之後,或在同一時間,即時通訊檢查..? – fartagaintuxedo
以及如何將其設置回false ..? – fartagaintuxedo