Programmatic Navigation

From GreaseSpot Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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!