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

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

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

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

只需要將bindunbeforunload()方法注冊到要檢測的頁面上即可,你可以在body的onload或者document.ready中注冊這個方法,在這里我們采用的是window.onbeforeunload,即是在頁面即將卸載之前彈出提示框,好的,現(xiàn)在來測試一下,測試代碼:
復(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)前操作未保存,如果你此時離開,所做操作信息將全部丟失,是否離開?";
}
</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>

上面的代碼就是我此次測試的所有代碼了,現(xiàn)在刷新頁面,嗯,很好,彈出了我們期望中的對話框。但是當(dāng)我在IE下打開上述代碼時,我的“刪除事件綁定按鈕”沒有發(fā)揮作用,這讓我很崩潰,國內(nèi)3分之2的用戶都在使用IE,特別是在使用該死的IE6、7,如果我的代碼不能在IE6、7下正常的工作,那相當(dāng)于我的工作是白做了,當(dāng)然,獎金的那些事情就更不用想了。辦法都是人想出來的,好吧,我利用一個全局變量來控制是否彈出對話框,修改后的"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)前操作未保存,如果你此時離開,所做操作信息將全部丟失,是否離開?";
}
}
</script>

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

相關(guān)文章

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

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

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

    索趣科技的答案

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

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

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

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

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

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

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

    JS 特殊運算符的使用

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

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

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

    Bootstrap CSS使用方法

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

    js圖片上傳的封裝代碼

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

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

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

最新評論

华阴市| 长治县| 施秉县| 上犹县| 米脂县| 德钦县| 建瓯市| 六盘水市| 丹东市| 余江县| 任丘市| 青川县| 响水县| 长白| 澄江县| 龙山县| 荆门市| 皋兰县| 兴宁市| 赣榆县| 吐鲁番市| 沂水县| 徐闻县| 扎鲁特旗| 高唐县| 高雄市| 淮阳县| 灵丘县| 望城县| 武穴市| 大厂| 宜州市| 江源县| 衡东县| 博乐市| 永泰县| 仁布县| 涿鹿县| 铅山县| 东辽县| 黑水县|