Question

When I type in the address bar in Google Chrome or any other browser:

javascript:alert("hello");​​​​​

It works, but

javascript:document.body.style.background="Red";

doesn't. Why is that? How to use the address bar to change the background color?

Was it helpful?

Solution

Add ;void 0 after the bookmarklet. When the code has a non-undefine value, the page unloads, and the return value is printed.

A common way to write bookmarklets is:

javascript:(function(){ ... code ... })();
  • The anonymous function returns undefined, so the page will not unload.
  • The closure enables local variables, so that no conflicts can occur with existing global properties.

Note that in the latest versions of modern browsers (FF, Chrome), many objects are not available through the javascript:-URL in the location bar.

OTHER TIPS

You need to activate this ability in your Chrome configuration. It's turned off by default.

XMLForDummies that's because of the fact that there is no access to document object from this place.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top