亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用后退按鈕檢測用戶是否已進入頁面?

如何使用后退按鈕檢測用戶是否已進入頁面?

冉冉說 2019-10-28 09:48:02
這個問題類似于在用戶在瀏覽器上單擊后退按鈕時進行跟蹤,但不相同...我有一個解決方案,并將其發布在此處以供參考和反饋。如果任何人有更好的選擇,我將為您服務!情況是我有一個頁面,上面有一個“就地編輯”字樣。即有一個“單擊此處添加描述” DIV,單擊該按鈕將變為帶有“保存”和“取消”按鈕的TEXTAREA。單擊“保存”將數據發布到服務器以更新數據庫,并將新描述放置在DIV中代替TEXTAREA。如果刷新頁面,則會使用“單擊以編輯”選項從數據庫中顯示新的描述。這些天,相當標準的Web 2.0東西。問題是,如果:頁面加載時沒有描述用戶添加了描述通過單擊鏈接將頁面導航到遠離用戶單擊后退按鈕然后,顯示的內容(從瀏覽器的緩存中顯示)是頁面的版本,其中不包含包含新描述的動態修改的DIV。這是一個相當大的問題,因為用戶認為他們的更新已丟失,并且不一定了解他們需要刷新頁面才能看到更改。因此,問題是:如何在頁面加載后將其標記為已修改,然后檢測用戶何時“返回”頁面并在這種情況下強制刷新?
查看完整描述

3 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

使用隱藏的形式。當您重新加載或單擊“后退”按鈕返回頁面時,表單數據通常會保存在瀏覽器中。以下內容會出現在您的頁面中(可能在底部附近):


<form name="ignore_me">

    <input type="hidden" id="page_is_dirty" name="page_is_dirty" value="0" />

</form>

在您的JavaScript中,您將需要以下內容:


var dirty_bit = document.getElementById('page_is_dirty');

if (dirty_bit.value == '1') window.location.reload();

function mark_page_dirty() {

    dirty_bit.value = '1';

}

嗅探表單的js必須在html完全解析后執行,但是如果用戶延遲是一個嚴重問題,則可以將表單和js放在頁面頂部(js秒)。


查看完整回答
反對 回復 2019-10-28
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

這是解決這個老問題的非常簡單的現代解決方案。


if (window.performance && window.performance.navigation.type == window.performance.navigation.TYPE_BACK_FORWARD) {

    alert('Got here using the browser "Back" or "Forward" button.');

}

目前所有主要瀏覽器都支持window.performance。


查看完整回答
反對 回復 2019-10-28
  • 3 回答
  • 0 關注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號