首先「不可能」永遠不是一個可以接受的答案。
其次你可以補償popstate的bug。在我的例子中,我豐富的編輯必須不斷補償懶惰的密鑰:Backspace。它不是一個後退按鈕的有效鍵(就像空格鍵爲「翻頁」一樣),但人們將其個人喜好強加於世界而不是添加瀏覽器擴展so當人們按下它時,有時觸發popstate而不是編輯器刪除鍵盤插入符左側的任何字符。
下面的代碼(不在此處發佈依賴關係)會檢測何時觸發popstate錯誤,並使用e.preventDefault();
將其擊中,然後使用history.go(1);
修復地址欄地址。使用編輯器的人不會注意到任何事情,因爲瀏覽器不允許操作DOM。這個代碼是最小的(其他人可能會在各種情況下補償這個bug),我現在只在Gecko/Firefox中測試過,所以一定要測試基於Blink,Presto,Trident和WebKit的瀏覽器。
window.onpopstate = function(e)
{
if (id_('editor') && is_node_parent(document.activeElement,id_('editor')))
{
e.preventDefault();
history.go(1);
}
}
「不可能」肯定能有一個答案 – Rob
我申請一個bug在Chrome有關退格鍵和取得有關數據丟失的高風險較強的情況下,你知道嗎?他們傾聽並將退格視爲退出Chrome的後退按鈕。經過這麼多年,所花的一切都是要問。現在,如果只有YouTube會聽空間吧... – Zectbumo