5

I cant figure out why this won't work. Is there something wrong with this code? The function is being called I checked with an alert but it just won't close the window.

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

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

and on test3.html

 window.opener.closeit();
4

2 回答 2

10

Your win variable is scoped to the function that handles the click event. Put it in a scope shared by both that function and closeit.

In this case, that would probably look like:

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

The first win is a local variable in the callback scope, while the second is a global object. Move the definition (var win) to outside the function and it should work.

于 2013-02-28T01:02:45.743 回答