Referencing Windows in JavaScript
By: aathishankaran in JavaScript Tutorials on 2007-03-29
When working with single and multiple frames in your JavaScript application, you probably need to use additional ways to reference windows. JavaScript provides four references to windows. Each of the references are implemented as properties of the window object.
Window and self
User can refer to the current window as window or self. For example, the following two code lines are functionally the same:
window.defaultStatus = "Welcome to the Goat Farm Home Page"
self.defaultStatus = "Welcome to the Goat Farm Home Page"
Because both window and self are synonyms to the current window, you might find it curious that both are included in the JavaScript language. As shown in the previous example, the rationale is simply flexibility; you can use window or self as you want.
However, as useful as window and self can be, it can easily become confusing to think about the logic behind it all. After all, an object's property that is used as an equivalent term for the object itself is rather unusual. Consequently, you might find it helpful to think of window or self as "reserved words" for the window object rather than its properties.
Because window and self are properties of the window object, you cannot use both window and self in the same context. For example, the following code does not work as desired:
window.self.document.write("< hl >Test. </hl >")
Finally, in multiframe environments, window and self always refer to the window in which the JavaScript code is executed.
Parent Frames are the same as window objects within a frameset. Within this multi-frame setting, you need to distinguish between the various frames displayed in the browser. The parent property of a window object helps you do that by referencing it's parent-the window containing the <FRAMESET> definition. For example, if you want to retrieve some information about the current window's parent, you use the following example in Listing.
<html> <head> <title>Child Window</title> </head> <SCRIPT > function getParentInfo() { myParentTitle = parent.document.title alert("My daddy's name is " + myParentTitle) } </SCRIPT> <form> <input type="button" value="Get Info" onClick="getParentInfo () "> </form> </body> </html>
Add Comment
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
- Your name, rating, website address, town, country, state and comment will be publicly displayed if entered.
- Aside from the data entered into these form fields, other stored data about your comment will include:
- Your IP address (not displayed)
- The time/date of your submission (displayed)
- Your email address will not be shared. It is collected for only two reasons:
- Administrative purposes, should a need to contact you arise.
- To inform you of new comments, should you subscribe to receive notifications.
- A cookie may be set on your computer. This is used to remember your inputs. It will expire by itself.
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
- Although the administrator will attempt to moderate comments, it is impossible for every comment to have been moderated at any given time.
- You acknowledge that all comments express the views and opinions of the original author and not those of the administrator.
- You agree not to post any material which is knowingly false, obscene, hateful, threatening, harassing or invasive of a person's privacy.
- The administrator has the right to edit, move or remove any comment for any reason and without notice.
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comments