第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

返回Firefox歷史記錄后,JavaScript將無法運(yùn)行

返回Firefox歷史記錄后,JavaScript將無法運(yùn)行

返回Firefox歷史記錄后,JavaScript將無法運(yùn)行當(dāng)我使用Firefox上的后退按鈕訪問以前訪問過的頁面時(shí),該頁面上的腳本將不再運(yùn)行。第二次查看頁面時(shí)是否有任何修復(fù)/解決方法讓腳本再次執(zhí)行?請(qǐng)注意,我在Google Chrome和Internet Explorer上測(cè)試了相同的網(wǎng)頁,并且它們按預(yù)期工作。以下是我用來測(cè)試問題的文件和步驟:(導(dǎo)航到0.html,點(diǎn)擊進(jìn)入1.html,后退按鈕)0.html<html><body><script>  window.onload = function() { alert('window.onload alert'); };  alert('inline alert');</script><a href="1.html">Click Me!</a></body></html>1.HTML<html><body><p>Go BACK!</p></body></html>
查看完整描述

3 回答

?
至尊寶的傳說

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

當(dāng)我使用Firefox上的后退按鈕訪問以前訪問過的頁面時(shí),該頁面上的腳本將不再運(yùn)行。

這是正確的,這是一件好事。

當(dāng)您點(diǎn)擊Firefox(以及Safari和Opera)中的鏈接時(shí),它不會(huì)立即銷毀您的頁面以進(jìn)入下一個(gè)頁面。它使頁面保持完整,只是將其隱藏在視圖之外。如果您點(diǎn)擊后退按鈕,它將使舊頁面重新進(jìn)入視圖,而無需再次加載文檔; 這要快得多,從而為用戶提供更平滑的后退/前進(jìn)頁面轉(zhuǎn)換。

此功能稱為bfcache。

您在用戶之前加載和使用它時(shí)添加到頁面的任何內(nèi)容仍將存在。您附加到頁面元素的任何事件處理程序仍將附加。您設(shè)置的任何超時(shí)/間隔仍將處于活動(dòng)狀態(tài)。因此,您很少有任何理由需要知道您已被隱藏并重新顯示。onload再次調(diào)用或內(nèi)聯(lián)腳本代碼是錯(cuò)誤的,因?yàn)槟谠摵瘮?shù)中執(zhí)行的任何綁定和內(nèi)容生成將在同一內(nèi)容上執(zhí)行第二次,可能會(huì)帶來災(zāi)難性的后果。(例如document.write,在內(nèi)聯(lián)腳本中會(huì)完全破壞頁面。)

寫入的原因window.onunload是,實(shí)現(xiàn)bfcache的瀏覽器已決定 - 為了與真正需要知道何時(shí)被丟棄的頁面兼容 - 任何聲明有興趣知道何時(shí)onunload發(fā)生的頁面都會(huì)導(dǎo)致bfcache被禁用 當(dāng)你回到它時(shí),該頁面將被新加載,而不是從bfcache中獲取。

所以,如果你設(shè)置window.onunload= function() {};,你實(shí)際做的是故意打破bfcache。這將導(dǎo)致您的頁面導(dǎo)航速度變慢,除非作為最后的手段,否則不應(yīng)使用。

如果您確實(shí)需要知道用戶何時(shí)離開或返回到您的頁面,而不會(huì)弄亂bfcache,則可以捕獲onpageshowonpagehide事件:

window.onload=window.onpageshow= function() {
    alert('Hello!');};


查看完整回答
反對(duì) 回復(fù) 2019-07-30
?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以查看活動(dòng)的persisted屬性pageshow。初始頁面加載時(shí)設(shè)置為false。從緩存加載頁面時(shí),它設(shè)置為true。

window.onpageshow = function(event) {
    if (event.persisted) {
        alert("From bfcache");
    }};

出于某種原因,jQuery在事件中沒有此屬性。你可以從原始活動(dòng)中找到它。

$(window).bind("pageshow", function(event) {
    if (event.originalEvent.persisted) {
        alert("From bfcache");
    }});


查看完整回答
反對(duì) 回復(fù) 2019-07-30
  • 3 回答
  • 0 關(guān)注
  • 423 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)