0

X 閉じるボタンを使用してユーザーがポップアップ ウィンドウを閉じる操作と、コードを介して閉じる操作を区別する必要があります。

var win= window.showModelessDialog("http://localhost/test/test.aspx",'google,....);
//Some manipulations            
//Manipulation ends
if(win!=null && win.open)
{
 win.close();
}

これで、test.aspx と test.aspx.cs に完全にアクセスできます。test.aspx ページで定義された onbeforeunload メソッドがあり、ウィンドウを閉じる (X を閉じるか、コードが実行される) どちらの方法でも呼び出されます。バックエンド操作を行えるように、X クローズとプログラムによるクローズを区別する

4

3 に答える 3

1

モデルポップアップを使用し、「OK」と「キャンセル」ボタンを含めます。

これで、「OK」と「キャンセル」の両方のボタン イベントを処理できるようになりました。

あなたが使用することができます:

AjaxControlToolkit - ModalPopup

jQuery UI - ダイアログ

于 2012-10-11T10:14:21.333 に答える
1
// parent
function closePopup(win) {
    win.close();
    // do the magic stuff...
}


// popup (test.aspx)
function closeMe() {
    self.opener.closePopup(window);
}

更新
コメントの時点でclosed、ポップアップのプロパティを確認してください。である場合false、ポップアップはまだ開いています。そうでない場合は、すでに閉じられています。

if (win.closed === false) {
    win.close();
    // do magic stuff here
}
于 2012-10-11T10:25:56.210 に答える
1

おそらくこのようなもの:

var MyPopup = {

  _win : null,

  _userClosingWindow : true,

  open : function() {
    var _this = this;
    this._win = window.open(...);
    this._win.onbeforeunload = function() {
      if( _this._userClosingWindow ) {
         // closed by user
      }
      else {
        // closed in code
      }
    };
  },

  close : function() {
    this._userClosingWindow = false;
    this._win.close();
  }

};

次に、 MyPopup.open() と MyPopup.close() を使用して、いつ close 関数が呼び出されたか、またはいつポップアップがユーザーによって閉じられたかを知ることができます。

于 2012-10-11T10:16:19.730 に答える