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?

有帮助吗?

解决方案

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.

其他提示

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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top