是否可以在beforeunload處理程序中更改DOM? Chrome瀏覽器似乎應用了DOM修改後用戶在瀏覽器關於離開頁面的提醒中按下「停留」,並且我想隱藏頁面的一部分而此提醒是可見的。在beforeunload中更改DOM在Chrome中
觀看演示:
<script>
window.onbeforeunload = function(e){ document.getElementById('a').style.display = "none"; e.returnValue = "adios";}
</script>
<div id=a >This text should disappear when the user tries to leave the page</div>
https://jsfiddle.net/qmatic/6sLp7rmq/
我到目前爲止唯一的解決辦法是動畫股利不透明度:0,並在一個setInterval的代碼,不斷重置該動畫。代碼運行時,div總是可見的。 Chrome在顯示警報時會停止所有代碼,因此動畫會最終運行至結束並隱藏div。但這是一個可怕的解決方案 - 我不斷更新DOM來重置動畫。有沒有人有更好的想法?
您是否嘗試在**附加事件處理程序之前修改css **,而不是在處理程序中執行此操作? – Gunnar
我應該什麼時候做?我對試圖離開頁面的用戶做出了反應。我怎麼知道用戶試圖離開頁面之前(例如在地址欄中輸入內容),然後再進行預先禁用之前? – Anton