Go4Expert

Go4Expert (http://www.go4expert.com/)
-   JavaScript and AJAX (http://www.go4expert.com/forums/javascript/)
-   -   closing main window in firefox (http://www.go4expert.com/forums/closing-main-window-firefox-t18158/)

msullivan3 23Jun2009 20:04

closing main window in firefox
 
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?

SaswatPadhi 23Jun2009 20:09

Re: closing main window in firefox
 
Try this :

Code: JavaScript

function closeWindow() {
newwin = window.open(location.href,'_parent','');
newwin.close();
}


msullivan3 23Jun2009 20:17

Re: closing main window in firefox
 
i just tried what you said, but it still isnt working.

SaswatPadhi 23Jun2009 20:29

Re: closing main window in firefox
 
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.

gkumar 25Jun2009 15:18

Re: closing main window in firefox
 
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.


All times are GMT +5.5. The time now is 23:33.