0

ユーザーがウィンドウの (閉じる x) ボタンをクリックすると警告するページが作成されます。私はいくつかの読書をやめ、javascriptにはonbeforeonloadと呼ばれる機能があり、私が達成しようとしていた仕事を引き受けることができることを発見しました。ただし、実装後に、ユーザーがウィンドウ内の何かをクリックすると (例: 保存して入力)、ダイアログ ボックスが再表示されることがわかりました。ウィンドウ内の特定の X ボタンのみをターゲットにする方法を考えていました。

    window.onbeforeunload = function (evt) {
  var message = 'Do you want to leave?';
  if (typeof evt == 'undefined') {
    evt = window.event;
  }
  if (evt) {
    evt.returnValue = message;
  }
  return message;
} 
4

2 に答える 2

0

これは、IE の「意図したとおりに機能する」動作です。アンカー タグのクリックは、ナビゲートするかどうかに関係なく、onbeforeunloadイベントをトリガーします。

これは私が使用した回避策です - それが最善のアプローチであるかどうかはわかりません:

document.onmouseup = function () {
    if (window.event.srcElement.tagName === 'A') {
        // turn off your onbeforeunload handler
        ...

        // some small time later, turn it back on
        setTimeout(..., 200);
    }
};
于 2012-08-13T17:40:57.173 に答える
0

現在、関数はグローバルに呼び出されています...このリソースは、探しているものを達成するのに役立つかもしれません: http://randomdrake.com/2009/09/23/how-to-use-onbeforeunload-with-form-submit -ボタン/

于 2012-08-13T17:33:23.583 に答える