Programmatic Navigation

From GreaseSpot Wiki
Revision as of 01:45, 4 February 2010 by Arantius (talk | contribs) (moved Cross Frame Access to Programmatic Navigation: whoops, totally wrong name on new page!)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

It's possible in Javascript to navigate to a new page with a simple expression:

document.location = 'http://www.example.com';
document.location.href = 'http://www.example.com';

This, however, is treating the document.location object as if it were a string. In some cases (simple reading and assignment) this works, but it can fail if, i.e., calling String object methods (like .indexOf() or .substr()). This is slightly remedied by looking at the .href property, which really is a string representing the location, and not an object with other properties.

However, it also relies on the non-standardized behavior that assigning a new value changes the document location. This can be written more clearly as:

document.location.assign("http://www.example.com/")
document.location.replace("http://www.example.com/")

The former example operates as a normal navigation. The latter operates like a redirect, replacing the old page with the new page in the browser history. Thus, a press of the back button skips the previous page. Sometimes, this is just the behavior you want!