Search code examples
javascriptbrowserbookmarkletaddress-bar

How to change a site background color using the browser's address bar?


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?


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.