15

私のウェブアプリにはこれがあります:

$(window).bind('beforeunload', function() {
    if(unSavedChanges == true)
    {
        return 'You have unsaved changes';
    }
    return null;
});

これはSafariとFirefoxで正常に機能します(firefoxがonBeforeUnloadダイアログにカスタムメッセージを表示しないことを除いて)。ただし、Windows7のIE8では、常にonBeforeUnload通知が表示されます。特に、保存されていない変更がない場合は、「null」と表示されます。ユーザーがすべてを保存して離れたいときに、IEがonBeforeUnload通知を表示しないようにするにはどうすればよいですか?

Jonの提案に従って、私はそのreturn null行を削除しました。コードは次のようになります。

$(window).bind('beforeunload', function() {
   if(unSavedChanges == true)
   {
       return 'You have unsaved changes';
   }
});
4

2 に答える 2

21

行を削除するreturn nullと、問題がないはずです(Javascriptではnullundefinedのものです)。

ちなみに、MDNeventによると、互換性を最大限に高めるには、パラメータと設定も受け入れる必要がありますevent.returnValue

于 2012-08-03T10:38:52.283 に答える
0

私はこれに通常のJavaScriptを使用し、正常に動作します

function setConfirmUnload(on) {
     window.onbeforeunload = (on) ? unloadMessage : null;
}

function unloadMessage() {
     return 'Please stay on the page';
}
于 2012-08-03T10:39:35.170 に答える