closing main window in firefox

msullivan3's Avatar, Join Date: Apr 2009
Go4Expert Member
i am running the following script:

Code:
    <script language="javascript" type="text/javascript"> 
      function closeWindow() { 
      window.open('','_parent',''); 
      window.close(); 
    } 
    </script>
i am trying to close the window and it works for all browsers except firefox. i am not trying to close a popup window, but rather the main window. is there a better method that closes for all browsers?

Last edited by shabbir; 23Jun2009 at 20:25.. Reason: Code blocks
0
SaswatPadhi's Avatar, Join Date: May 2009
~ Б0ЯИ Τ0 С0δЭ ~
Try this :

Code: JavaScript
function closeWindow() {
newwin = window.open(location.href,'_parent','');
newwin.close();
}
0
msullivan3's Avatar, Join Date: Apr 2009
Go4Expert Member
i just tried what you said, but it still isnt working.
0
SaswatPadhi's Avatar, Join Date: May 2009
~ Б0ЯИ Τ0 С0δЭ ~
OK. I read this in the mozilla forum :

Quote:
You can only close windows that were opened with a window.open() call.
See https://developer.mozilla.org/En/DOM:window.close
You can use window.open() to open a new window and then, try to close it by the script; which will hopefully work on all browsers.
0
gkumar's Avatar
Banned
However, in some browsers it is not allowed to automatically close windows that have not been opened by JavaScript. The line above works fine in Explorer on Mac, Mozilla, Opera and OmniWeb, but not in Explorer on Windows, Netscape 4 and lower and iCab. In these browsers the user is asked to confirm the closing of the window. As to Safari, it does absolutely nothing.
Rather to my surprise it's very easy to get around this confirm box in Explorer 5.5 and 6 on Windows. Explorer merely looks if the page has an opener. If it doesn't the window has been opened by the user and may not be closed without a confirm. So what we need to do is trick Explorer into thinking the opening page has an opener:

Code:
opener.opener = top; // or whatever, as long as opener.opener has a value;
opener.close()
This trick doesn't work in Netscape 4 and lower and iCab, these browsers have more sophisticated ways to determine whether a window has been opened by JavaScript.