最近在玩 iframe 的時候想到如果使用者直接按 F5 重新整理網頁,不就會遺失 iframe 的瀏覽紀錄了嗎?於是我就把矛頭指向攔截瀏覽器 F5 事件的方向去解。
我這邊的做法是在父層與子層皆加上一段 JavaScript 來攔截,讓瀏覽器只重整子層的網頁。
- 父層:
12345678910111213141516171819var iframe = $('#external-frame')[0];document.onkeydown = function (e) {e = window.event || e;var keycode = e.keyCode || e.which;if (keycode == 116) {// ieif (window.event) {try { e.keyCode = 0; } catch (e) { }e.returnValue = false;}// ffelse {e.preventDefault();}iframe.contentWindow.location.reload();}}; - 子層:
1234567891011121314151617document.onkeydown = function (e) {e = window.event || e;var keycode = e.keyCode || e.which;if (keycode == 116) {// ieif (window.event) {try { e.keyCode = 0; } catch (e) { }e.returnValue = false;}// ffelse {e.preventDefault();}window.location.reload();}};