最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

window.onbeforeunload方法在IE下無法正常工作的解決辦法

 更新時(shí)間:2010年01月23日 23:44:05   作者:  
下面的代碼可以做到不管用戶是點(diǎn)擊了關(guān)閉,或者是在任務(wù)欄關(guān)閉、點(diǎn)擊后退、刷新、按F5鍵,都可以檢測(cè)到用戶即將離開的消息。
事件的起因是由于在工作中有客戶反映,常常會(huì)有用戶在瀏覽網(wǎng)頁的過程中訂購了商品,但是由于用戶一下子打開的窗口過多,又或者在敲打鍵盤時(shí),錯(cuò)誤地按到了F5鍵,導(dǎo)致頁面刷新或者不正常關(guān)閉,而這時(shí)在該網(wǎng)頁上所做的一切操作的信息都丟失了,如果我們可以提供一個(gè)在客戶信息未處理完成時(shí)的提示那該多好啊,下面的代碼可以做到不管用戶是點(diǎn)擊了關(guān)閉,或者是在任務(wù)欄關(guān)閉、點(diǎn)擊后退、刷新、按F5鍵,都可以檢測(cè)到用戶即將離開的消息。
復(fù)制代碼 代碼如下:

<script type="text/javascript" language="javascript">
function bindunbeforunload()
{
window.onbeforeunload=perforresult;
}
function unbindunbeforunload()
{
window.onbeforeunload=null;
}
function perforresult()
{
return"當(dāng)前操作未保存,如果你此時(shí)離開,所做操作信息將全部丟失,是否離開?";
}
</script>

只需要將bindunbeforunload()方法注冊(cè)到要檢測(cè)的頁面上即可,你可以在body的onload或者document.ready中注冊(cè)這個(gè)方法,在這里我們采用的是window.onbeforeunload,即是在頁面即將卸載之前彈出提示框,好的,現(xiàn)在來測(cè)試一下,測(cè)試代碼:
復(fù)制代碼 代碼如下:

<html>
<head><title>this is id onbeforunload event test</title>
</head>
<script type="text/javascript" language="javascript">
function bindunbeforunload()
{
window.onbeforeunload=perforresult;
}
function unbindunbeforunload()
{
window.onbeforeunload=null;
}
function perforresult()
{
return"當(dāng)前操作未保存,如果你此時(shí)離開,所做操作信息將全部丟失,是否離開?";
}
</script>
<body onload="javascript:return bindunbeforunload();">
<h1>test is start</h1>
<input type="button" value="綁定事件" id="btnBind" onclick="return biindunbeforunload();"/>
<input type="button" value="刪除綁定事件" id="btnUnBind" onclick="unbiindunbeforunload();"/>
</body>
</html>

上面的代碼就是我此次測(cè)試的所有代碼了,現(xiàn)在刷新頁面,嗯,很好,彈出了我們期望中的對(duì)話框。但是當(dāng)我在IE下打開上述代碼時(shí),我的“刪除事件綁定按鈕”沒有發(fā)揮作用,這讓我很崩潰,國(guó)內(nèi)3分之2的用戶都在使用IE,特別是在使用該死的IE6、7,如果我的代碼不能在IE6、7下正常的工作,那相當(dāng)于我的工作是白做了,當(dāng)然,獎(jiǎng)金的那些事情就更不用想了。辦法都是人想出來的,好吧,我利用一個(gè)全局變量來控制是否彈出對(duì)話框,修改后的"javascript"代碼如下:
復(fù)制代碼 代碼如下:

<script type="text/javascript" language="javascript">
var goodexit=false;
function bindunbeforunload()
{
goodexit=false;
window.onbeforeunload=perforresult;
}
function unbindunbeforunload()
{
goodexit=true;
window.onbeforeunload=null;
}
function perforresult()
{
if(!goodexit)
{
return"當(dāng)前操作未保存,如果你此時(shí)離開,所做操作信息將全部丟失,是否離開?";
}
}
</script>

同時(shí)調(diào)用刪除綁定事件時(shí),將變量goodexit的值更改為:true,表示用戶是正常退出,這樣自然不會(huì)彈出對(duì)話框了。
再測(cè)試一下,正常了,對(duì),這就是我想要的結(jié)果!
本篇文章源于從Brandon Himes處而得,并且還是從google快照,源文鏈接已找不到,本來想翻譯的,但是本人水平實(shí)在有限,看得懂而已,如果翻譯得不好反而招罵,如果朋友們想看源文,請(qǐng)直接點(diǎn)擊這里,這是快照地址,可能一段時(shí)間后就不存在了。

相關(guān)文章

  • layui table去掉右側(cè)滑動(dòng)條的實(shí)現(xiàn)方法

    layui table去掉右側(cè)滑動(dòng)條的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇layui table去掉右側(cè)滑動(dòng)條的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 索趣科技的答案

    索趣科技的答案

    索趣科技的答案...
    2007-02-02
  • 解決 window.onload 被覆蓋的問題方法

    解決 window.onload 被覆蓋的問題方法

    這篇文章主要介紹了解決 window.onload 被覆蓋的問題方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • js實(shí)現(xiàn)的仿新浪微博完美的時(shí)間組件升級(jí)版

    js實(shí)現(xiàn)的仿新浪微博完美的時(shí)間組件升級(jí)版

    本博客沒有華麗的布局,只求樸實(shí)的js的代碼,只為js代碼愛好者提供,一周大概會(huì)出1-2篇js前沿代碼的文章.只是代碼,不說技術(shù)
    2011-12-12
  • js實(shí)現(xiàn)內(nèi)容顯示并使用json傳輸數(shù)據(jù)

    js實(shí)現(xiàn)內(nèi)容顯示并使用json傳輸數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)內(nèi)容顯示并使用json傳輸數(shù)據(jù)的方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • JS 特殊運(yùn)算符的使用

    JS 特殊運(yùn)算符的使用

    JavaScript中包含了一系列不常見但功能強(qiáng)大的特殊運(yùn)算符,如空值合并運(yùn)算符(??)、可選鏈運(yùn)算符(?.)等,這些運(yùn)算符在特定場(chǎng)景下極大地簡(jiǎn)化了代碼的復(fù)雜度,并提高了開發(fā)效率,通過深入了解這些特殊運(yùn)算符,開發(fā)者可以更加高效地處理各種數(shù)據(jù)和邏輯
    2024-09-09
  • 詳解小程序設(shè)置緩存并且不覆蓋原有數(shù)據(jù)

    詳解小程序設(shè)置緩存并且不覆蓋原有數(shù)據(jù)

    這篇文章主要介紹了小程序設(shè)置緩存并且不覆蓋原有數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Bootstrap CSS使用方法

    Bootstrap CSS使用方法

    這篇文章主要為大家詳細(xì)介紹了Bootstrap中CSS的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • js圖片上傳的封裝代碼

    js圖片上傳的封裝代碼

    這篇文章主要為大家詳細(xì)介紹了js圖片上傳的封裝代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • setTimeout()與setInterval()方法區(qū)別介紹

    setTimeout()與setInterval()方法區(qū)別介紹

    計(jì)時(shí)器setTimeout()和setInterval()兩個(gè)都是js的計(jì)時(shí)功能的函數(shù)兩個(gè)有些區(qū)別,下面為大家簡(jiǎn)單介紹下,希望對(duì)大家有所幫助
    2013-12-12

最新評(píng)論

社旗县| 邳州市| 关岭| 洛南县| 惠安县| 扎兰屯市| 夏邑县| 白河县| 贡嘎县| 金堂县| 东兰县| 奇台县| 深水埗区| 饶平县| 绿春县| 屯昌县| 苏尼特左旗| 法库县| 宾川县| 巴楚县| 集贤县| 新巴尔虎右旗| 伊宁市| 五指山市| 金溪县| 微山县| 上饶县| 阿克| 定南县| 朔州市| 兴义市| 建瓯市| 台江县| 淮南市| 广元市| 皋兰县| 扎囊县| 大姚县| 福建省| 柳河县| 辽中县|