April 23, 2000 - window.open vs. document.open
April 23, 2000 window.open vs. document.open Tips: April 2000
Yehuda Shiran, Ph.D.
|
open()
method is that it is almost always invoked as window.open()
, even though window refers to the global object and should therefore be entirely optional. Since the document
object also has an open()
method, specifying the window
object when we want to open a new window is essential for clarity. In event handlers, you must specify window.open()
instead of simply using open()
. Due to the scoping of static objects in JavaScript, a call to open()
without specifying an object name is equivalent to document.open()
. When the event handler of an HTML button executes, for example, the scope chain includes the Button
object, the Form
object, the Document
object, and finally, the Window
object that contains the document. Thus, if such an event handler refers to the open()
method, this identifier ends up being resolved in the Document
object, and the event handler opens a new document instead of opening a new window.
Learn more about the open method in Tutorial 1, Working with Windows.