You are here: irt.org | FAQ | JavaScript | Window | Q1255 [ previous next ]
You open a new window in one of three ways:
1. start the browser
Internet Explorer's main browser is _main (undocumented)
Netscape Navigator's main browser is namesless but can be given a name since v3:
<SCRIPT> window.name="main"; </SCRIPT>
or from a window opened by the main window:
<SCRIPT> opener.name="main"; </SCRIPT>
2. Using target on frame, href or form
The following:
<A HREF="popup.html" TARGET="popup">open page</A>
will open popup and load page the first time and just load page if popup is already open
3. using window.open
windowHandle = window.open('page.html','popup',properties);
There are exceptions to the name rule - if the "magic" targets/windownames: _top, _self, _blank are used, the opened window will be nameless, but can in situation 3 be given a name:
windowHandle.name = 'popup'; // (a bit pointless...)
You can determine the name of the current window by asking and/or setting it:
if (!self.name) self.name = 'myWindow';
You can get the windowHandle, which you will need to do things like closing or resizing a window by opening the window if you know the name:
winHandle = window.open('','windowName'); winHandle.close();
Be aware that Internet Explorer 3 does not like this lack of page name and will open a blank window.
A trick to close a named window would then be to load a page that closed itself:
window.open('closeit.html','windowName');
Where closeit.html contained:
<BODY onLoad="self.close()"></BODY>
This will produce a warning if you didn't open that window yourself and if the history of that window contain more than one entry.