5

なぜこれがうまくいかないのか理解できません。このコードに何か問題がありますか?関数が呼び出されています。アラートで確認しましたが、ウィンドウが閉じません。

 $('#click').click(function() {
   var win = window.open("test3.html","something","width=550,height=170");
 });

 function closeit(){
   win.close();
 }

およびtest3.html

 window.opener.closeit();
4

2 に答える 2

10

変数winのスコープは、クリックイベントを処理する関数です。その関数との両方で共有されるスコープに入れてくださいcloseit

この場合、それはおそらく次のようになります。

var win;

…

    $('#click').click(function() {
        win = window.open("test3.html", "something", "width=550,height=170");
    });
});

function closeit() {
    win.close();
}
于 2013-02-28T01:01:30.760 に答える
2

1つ目winはコールバックスコープのローカル変数で、2つ目はグローバルオブジェクトです。定義(var win)を関数の外に移動すると、機能するはずです。

于 2013-02-28T01:02:45.743 に答える