嘿,我有以下statechange
事件的窗口中設置:更改文檔時窗口事件會發生什麼情況?
History.Adapter.bind(window,'statechange',function(e){
console.log("statechange event occured ");
//more code
var newDoc = document.open();
newDoc.write(file);
newDoc.close();
});
我使用history.js但並不在這種情況下,因爲它不僅結合了statechange regulary,我得到的值file
像應該和工作正常。
現在我有這樣的代碼(和其他代碼)的外部JS文件中, 我正在通過所有a
標籤迭代,並應用以下click事件裏面的文件:當我點擊
$(element).on("click",function(e){
e.preventDefault();
//more code
History.pushState({file : file},title, fullHref);
});
現在文檔正在按預期發生更改,但嘗試使用後退/前進按鈕時statechange
事件不會觸發。
我應該提到這個js也包含在im loading中。
所以我最初的想法是,隨着文件的變化,但窗口沒有,事件依然存在。這是不正確的,因爲它應用了statechange事件的乘法時間。所以我嘗試了一次使用cookie來應用這個事件,但那仍然是一樣的。
現在,如果不是改變文檔,我只是簡單地將它應用於jQuerys .html()
statechange事件被激發,因爲我認爲它與文檔有關。
爲什麼會發生這種情況?我相信,如果我更多地瞭解更改文檔時發生的窗口事件,我可以解決此問題。
嘗試次數:
- 我現在也嘗試通過普通紀錄API綁定到
popstate
事件,還是同樣的結果給予或採取。pushState
不會觸發popstate,但後退按鈕卻沒有狀態。 - 我得出的結論是,我不應該使用history.js,因爲我認爲問題來自那裏,所以我「解決」了我的問題,popstate仍然導致問題,因爲document.open似乎在燒製popstate。還在尋找我一直在使用
on
嘗試更多信息 - ,相同的結果
信息:
- 事實上使用歷史這個例子中我們是因爲history.js,如果我使用常規歷史API仍然存在相同的問題。
我已閱讀在MDN是:
{{gecko_minversion_note( 「1.9.2」,「與壁虎1.9.2,文件開始。open()使用
其使用URI的文檔的主體,而不是從堆棧中取回 主體。其結果是,你不能再調用 document.write()的成從鉻不受信任的文檔,即使使用 wrappedJSObject。「)}}
哪個林不知道,但我認爲可以realted這個問題
現在不再使用了,你現在應該使用'on',是的我沒有幫助。使用'click'只是我的一個嘗試。 –