Location
objects are predefined JavaScript objects that you access through the location
property of a window
object.
location
object represents the complete URL associated with a given window
object. Each property of the location
object represents a different portion of the URL.
In general, a URL has this form:
protocol//host:port/pathname#hash?searchFor example:
http://home.netscape.com/assist/extensions.htm#topic1?x=7&y=2These parts serve the following purposes:
protocol
represents the beginning of the URL, up to and including the first colon.host
represents the host and domain name, or IP address, of a network host.port
represents the communications port that the server uses for communications.pathname
represents the URL-path portion of the URL.hash
represents an anchor name fragment in the URL, including the hash mark (#). This property applies to HTTP URLs only.search
represents any query information in the URL, including the question mark (?). This property applies to HTTP URLs only. The search string contains variable and value pairs; each pair is separated by an ampersand (&).Location
object has a property for each of these parts of the URL. See the individual properties for more information. A Location
object has two other properties not shown here:
If you assign a string to the location
property of an object, JavaScript creates a location
object and assigns that string to its href
property. For example, the following two statements are equivalent and set the URL of the current window to the Netscape home page:
window.location.href="http://home.netscape.com/"The
window.location="http://home.netscape.com/"
location
object is contained by the window
object and is within its scope. If you refer to a location
object without specifying a window, the location
object represents the current location. If you refer to a location
object and specify a window name, as in windowReference.location
, the location
object represents the location of the specified window.
In event handlers, you must specify window.location
instead of simply using location
. Due to the scoping of static objects in JavaScript, a call to location
without specifying an object name is equivalent to document.location
, which is a synonym for document.URL
.
Location
is not a property of the document
object; its equivalent is the document.URL
property. The document.location
property, which is a synonym for document.URL
, is deprecated.
How documents are loaded when location is set.
When you set the location
object or any of its properties except hash,
whether a new document is loaded depends on which version of the browser you are running:
location
does a conditional ("If-modified-since") HTTP GET operation, which returns no data from the server unless the document has been modified since the last version downloaded.location
depends on the user's setting for comparing a document to the original over the network. The user interface option for setting this preference differs in browser versions. The user decides whether to check a document in cache every time it is accessed, once per session, or never. The document is reloaded from cache if the user sets never or once per session; the document is reloaded from the server only if the user chooses every time.URL type | Protocol |
Example
|
|
|
|
|
|
|
|
| |
---|
javascript:
protocol evaluates the expression after the colon (:), if there is one, and loads a page containing the string value of the expression, unless it is undefined. If the expression evaluates to undefined (by calling a void function, for example javascript:void(0)
), no new page loads. Note that loading a new page over your script's page clears the page's variables, functions, and so on.view-source:
protocol displays HTML code that was generated with JavaScript document.write
and document.writeln
methods. For information on printing and saving generated HTML, see document.write
.about:
protocol provides information on Navigator. For example:
Property |
Description
|
Specifies the host and domain name, or IP address, of a network host.
|
|
|
|
|
| |
---|
Method |
Description
|
| |
---|
watch
and unwatch
methods from Object
.
window.location.href="http://home.netscape.com/"Example 2. The following statement sets the URL of a frame named
window.location="http://home.netscape.com/"
frame2
to the Sun home page:
parent.frame2.location.href="http://www.sun.com/"See also the examples for
Anchor
.
History
, document.URL
hash
property specifies a portion of the URL. This property applies to HTTP URLs only.
You can set the hash
property at any time, although it is safer to set the href
property to change a location. If the hash that you specify cannot be found in the current location, you get an error.
Setting the hash
property navigates to the named anchor without reloading the document. This differs from the way a document is loaded when other location
properties are set (see "How documents are loaded when location is set" on page 252).
See RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.htm
) for complete information about the hash.
window.open
statement creates a window called newWindow
and loads the specified URL into it. The document.write
statements display properties of newWindow.location
in a window called msgWindow
.
newWindow=window.open
("http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object")
msgWindow.document.write("newWindow.location.href = " +The previous example displays output such as the following:
newWindow.location.href + "<P>")
msgWindow.document.write("newWindow.location.hash = " +
newWindow.location.hash + "<P>")
msgWindow.document.close()
newWindow.location.href =
http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object
newWindow.location.hash = #checkbox_object
Location.host
, Location.hostname
, Location.href
, Location.pathname
, Location.port
, Location.protocol
, Location.search
host
property specifies a portion of a URL. The host
property is a substring of the hostname
property. The hostname
property is the concatenation of the host
and port
properties, separated by a colon. When the port
property is null, the host
property is the same as the hostname
property.
You can set the host
property at any time, although it is safer to set the href
property to change a location. If the host that you specify cannot be found in the current location, you get an error.
See Section 3.1 of RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.htm
) for complete information about the hostname and port.
window.open
statement creates a window called newWindow
and loads the specified URL into it. The document.write
statements display properties of newWindow.location
in a window called msgWindow
.
newWindow=window.open
("http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object")
msgWindow.document.write("newWindow.location.href = " +The previous example displays output such as the following:
newWindow.location.href + "<P>")
msgWindow.document.write("newWindow.location.host = " +
newWindow.location.host + "<P>")
msgWindow.document.close()
newWindow.location.href =
http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object
newWindow.location.host = home.netscape.com
Location.hash
, Location.hostname
, Location.href
, Location.pathname
, Location.port
, Location.protocol
, Location.search
hostname
property specifies a portion of a URL. The hostname
property is the concatenation of the host
and port
properties, separated by a colon. When the port
property is 80 (the default), the host
property is the same as the hostname
property.
You can set the hostname
property at any time, although it is safer to set the href
property to change a location. If the hostname that you specify cannot be found in the current location, you get an error.
See Section 3.1 of RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.htm
) for complete information about the hostname.
window.open
statement creates a window called newWindow
and loads the specified URL into it. The document.write
statements display properties of newWindow.location
in a window called msgWindow
.
newWindow=window.open
("http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object")
msgWindow.document.write("newWindow.location.href = " +The previous example displays output such as the following:
newWindow.location.href + "<P>")
msgWindow.document.write("newWindow.location.hostName = " +
newWindow.location.hostName + "<P>")
msgWindow.document.close()
newWindow.location.href =
http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object
newWindow.location.hostName = home.netscape.com
Location.hash
, Location.host
, Location.href
, Location.pathname
, Location.port
, Location.protocol
, Location.search
href
property specifies the entire URL. Other location
object properties are substrings of the href
property. If you want to change the URL associated with a window, you should do so by changing the href
property; this correctly updates all of the other properties.
You can set the href
property at any time.
Omitting a property name from the location
object is equivalent to specifying location.href
. For example, the following two statements are equivalent and set the URL of the current window to the Netscape home page:
window.location.href="http://home.netscape.com/"See RFC 1738 (
window.location="http://home.netscape.com/"
http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.htm
) for complete information about the URL.
window.open
statement creates a window called newWindow
and loads the specified URL into it. The document.write
statements display all the properties of newWindow.location
in a window called msgWindow
.
newWindow=window.open
("http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object")
msgWindow.document.write("newWindow.location.href = " +The previous example displays output such as the following:
newWindow.location.href + "<P>")
msgWindow.document.write("newWindow.location.protocol = " +
newWindow.location.protocol + "<P>")
msgWindow.document.write("newWindow.location.host = " +
newWindow.location.host + "<P>")
msgWindow.document.write("newWindow.location.hostName = " +
newWindow.location.hostName + "<P>")
msgWindow.document.write("newWindow.location.port = " +
newWindow.location.port + "<P>")
msgWindow.document.write("newWindow.location.pathname = " +
newWindow.location.pathname + "<P>")
msgWindow.document.write("newWindow.location.hash = " +
newWindow.location.hash + "<P>")
msgWindow.document.write("newWindow.location.search = " +
newWindow.location.search + "<P>")
msgWindow.document.close()
newWindow.location.href =
http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object
newWindow.location.protocol = http:
newWindow.location.host = home.netscape.com
newWindow.location.hostName = home.netscape.com
newWindow.location.port =
newWindow.location.pathname =
/comprod/products/navigator/version_2.0/script/
script_info/objects.htm
newWindow.location.hash = #checkbox_object
newWindow.location.search =
Location.hash
, Location.host
, Location.hostname
, Location.pathname
, Location.port
, Location.protocol
, Location.search
pathname
property specifies a portion of the URL. The pathname supplies the details of how the specified resource can be accessed.
You can set the pathname
property at any time, although it is safer to set the href
property to change a location. If the pathname that you specify cannot be found in the current location, you get an error.
See Section 3.1 of RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.htm
) for complete information about the pathname.
window.open
statement creates a window called newWindow
and loads the specified URL into it. The document.write
statements display properties of newWindow.location
in a window called msgWindow
.
newWindow=window.open
("http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object")
msgWindow.document.write("newWindow.location.href = " +The previous example displays output such as the following:
newWindow.location.href + "<P>")
msgWindow.document.write("newWindow.location.pathname = " +
newWindow.location.pathname + "<P>")
msgWindow.document.close()
newWindow.location.href =
http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object
newWindow.location.pathname =
/comprod/products/navigator/version_2.0/script/
script_info/objects.htm
Location.hash
, Location.host
, Location.hostname
, Location.href
, Location.port
, Location.protocol
, Location.search
port
property specifies a portion of the URL. The port
property is a substring of the hostname
property. The hostname
property is the concatenation of the host
and port
properties, separated by a colon.
You can set the port
property at any time, although it is safer to set the href
property to change a location. If the port that you specify cannot be found in the current location, you get an error. If the port
property is not specified, it defaults to 80.
See Section 3.1 of RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.htm
) for complete information about the port.
window.open
statement creates a window called newWindow
and loads the specified URL into it. The document.write
statements display properties of newWindow.location
in a window called msgWindow
.
newWindow=window.open
("http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object")
msgWindow.document.write("newWindow.location.href = " +The previous example displays output such as the following:
newWindow.location.href + "<P>")
msgWindow.document.write("newWindow.location.port = " +
newWindow.location.port + "<P>")
msgWindow.document.close()
newWindow.location.href =
http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object
newWindow.location.port =
Location.hash
, Location.host
, Location.hostname
, Location.href
, Location.pathname
, Location.protocol
, Location.search
protocol
property specifies a portion of the URL. The protocol indicates the access method of the URL. For example, the value "http:"
specifies HyperText Transfer Protocol, and the value "javascript:"
specifies JavaScript code.
You can set the protocol
property at any time, although it is safer to set the href
property to change a location. If the protocol that you specify cannot be found in the current location, you get an error.
The protocol
property represents the scheme name of the URL. See Section 2.1 of RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.htm
) for complete information about the protocol.
window.open
statement creates a window called newWindow
and loads the specified URL into it. The document.write
statements display properties of newWindow.location
in a window called msgWindow
.
newWindow=window.open
("http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object")
msgWindow.document.write("newWindow.location.href = " +The previous example displays output such as the following:
newWindow.location.href + "<P>")
msgWindow.document.write("newWindow.location.protocol = " +
newWindow.location.protocol + "<P>")
msgWindow.document.close()
newWindow.location.href =
http://home.netscape.com/comprod/products/navigator/
version_2.0/script/script_info/objects.htm#checkbox_object
newWindow.location.protocol = http:
Location.hash
, Location.host
, Location.hostname
, Location.href
, Location.pathname
, Location.port
, Location.search
Location.href
property).reload([forceGet])
forceGet |
reload
method does not force a transaction with the server. However, if the user has set the preference to check every time, the method does a "conditional GET" request using an If-modified-since HTTP header, to ask the server to return the document only if its last-modified time is newer than the time the client keeps in its cache. In other words, reload
reloads from the cache, unless the user has specified to check every time and the document has changed on the server since it was last loaded and saved in the cache.
<SCRIPT>
function displayImage(theImage) {
document.images[0].src=theImage
}
</SCRIPT>
<FORM NAME="imageForm">
<B>Choose an image:</B>
<BR><INPUT TYPE="radio" NAME="imageChoice" VALUE="image1" CHECKED
onClick="displayImage('seaotter.gif')">Sea otter
<BR><INPUT TYPE="radio" NAME="imageChoice" VALUE="image2"
onClick="displayImage('orca.gif')">Killer whale
<BR><INPUT TYPE="radio" NAME="imageChoice" VALUE="image3"
onClick="displayImage('humpback.gif')">Humpback whale
<BR>
<IMG NAME="marineMammal" SRC="seaotter.gif" ALIGN="left" VSPACE="10">
<P><INPUT TYPE="button" VALUE="Click here to reload"
onClick="window.location.reload()">
</FORM>
Location.replace
replace(URL)
URL |
replace
method loads the specified URL over the current history entry. After calling the replace
method, the user cannot navigate to the previous URL by using browser's Back button.
If your program will be run with JavaScript 1.0, you could put the following line in a SCRIPT
tag early in your program. This emulates replace
, which was introduced in JavaScript 1.1:
if (location.replace == null)The
location.replace = location.assign
replace
method does not create a new entry in the history list. To create an entry in the history list while loading a URL, use the History.go
method.
displayCatalog
function executes the replace
method, replacing the current URL with the URL appropriate for the catalog the user has chosen. After invoking displayCatalog
, the user cannot navigate to the previous URL (the list of catalogs) by using browser's Back button.
<SCRIPT>
function displayCatalog() {
var seaName=""
var catName=""
for (var i=0; i < document.catalogForm.season.length; i++) {
if (document.catalogForm.season[i].checked) {
seaName=document.catalogForm.season[i].value
i=document.catalogForm.season.length
}
}
for (var i in document.catalogForm.category) {
if (document.catalogForm.category[i].checked) {
catName=document.catalogForm.category[i].value
i=document.catalogForm.category.length
}
}
fileName=seaName + catName + ".htm"
location.replace(fileName)
}
</SCRIPT>
<FORM NAME="catalogForm">
<B>Which catalog do you want to see?</B>
<P><B>Season</B>
<BR><INPUT TYPE="radio" NAME="season" VALUE="q1" CHECKED>Spring/Summer
<BR><INPUT TYPE="radio" NAME="season" VALUE="q3">Fall/Winter
<P><B>Category</B>
<BR><INPUT TYPE="radio" NAME="category" VALUE="clo" CHECKED>Clothing
<BR><INPUT TYPE="radio" NAME="category" VALUE="lin">Linens
<BR><INPUT TYPE="radio" NAME="category" VALUE="hom">Home & Garden
<P><INPUT TYPE="button" VALUE="Go" onClick="displayCatalog()">
</FORM>
History
, window.open
, History.go
, Location.reload
search
property specifies a portion of the URL. This property applies to HTTP URLs only.
The search
property contains variable and value pairs; each pair is separated by an ampersand. For example, two pairs in a search string could look as follows:
?x=7&y=5You can set the
search
property at any time, although it is safer to set the href
property to change a location. If the search that you specify cannot be found in the current location, you get an error.
See Section 3.3 of RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.htm
) for complete information about the search.
window.open
statement creates a window called newWindow
and loads the specified URL into it. The document.write
statements display properties of newWindow.location
in a window called msgWindow
.
newWindow=window.open
("http://guide-p.infoseek.com/WW/NS/Titles?qt=RFC+1738+&col=WW")
msgWindow.document.write("newWindow.location.href = " +The previous example displays the following output:
newWindow.location.href + "<P>")
msgWindow.document.close()
msgWindow.document.write("newWindow.location.search = " +
newWindow.location.search + "<P>")
msgWindow.document.close()
newWindow.location.href =
http://guide-p.infoseek.com/WW/NS/Titles?qt=RFC+1738+&col=WW
newWindow.location.search = ?qt=RFC+1738+&col=WW
Location.hash
, Location.host
, Location.hostname
, Location.href
, Location.pathname
, Location.port
, Location.protocol
Last Updated: 05/28/99 11:59:50