onbeforeunloadとaタグのIE中の衝突のbug

957 ワード

onbeforeunloadはwindowのイベントで、現在Firefox、IEはすべて支持して、主にユーザーにこのページを離れるかどうかをヒントを与えて、通常いくつかの比較的に重要なデータが提出される前に、ユーザーの誤操作によるデータの紛失を防止します.典型的なアプリケーションはgmailのように、メールを書く時、ページを更新したり閉じたりすると、ヒントが出ます.
しかし、IEの下でaタグをクリックすると、Obeforeunloadイベントが発生します.また、hrefにjavascript:void(0)と書いてもだめです.Firefoxには同じようなことはありません.そこで資料を調べて、Obefore unload事件を再認識しました.
aタグトリガイベントの手順
onclick、onbeforeunloadとhrefの3者の間の先着運行関係はこのようです.onclick>onbeforeunload>href、この道理を知って、私達はいくつかの方法を通じてonbeforeunloadを阻止することができます.また、IEブラウザにおいて、hrefが啝であるなら、オンベフォーンunloadイベントをトリガしない.
 
どうやってonbeforeunloadを阻止しますか?
Ajaxと同時に、aラベルにOclickイベントを追加して、onclickはonbeforeunloadの前に運行して、それからreturn falseに来て、いいです.
onbeforeunloadを避けて直接href
onclick事件を結び付けて、onbeforeunloadを避けて直接hrefを実行できます.下のコードはonbeforeunloadを避けてhrefを実行できます.
var a=1;
window.onbeforeunload=function()
{
    if(a)alert("onbeforeunload     !");
}
私達はオンリーロック事件にa=0を加えるだけでいいです.だけでいいです