In Firefox version 13, bookmarklets (bookmarks with a javascript:
URL, e.g. javascript: alert("it works")
stopped working. Is there any solution to use javascript:
bookmarks in Firefox 13?
相关问题
- Is there a limit to how many levels you can nest i
- How to toggle on Order in ReactJS
- void before promise syntax
- Keeping track of variable instances
- Can php detect if javascript is on or not?
This is a consequence of Bug 728313 - Using a bookmark keyword to a bookmarklet fails on new tabs, also Bug 739387 - Aurora 13a New Tab display doesn't allow javascript bookmarks to be selected . This bug affects Firefox 13 onwards.
As a consequence of the fix to bug 723808,
javascript:
bookmarks are disabled in a just-created new tab. If you first load almost any URL, includingabout:blank
, then a Javascript bookmark will work in that tab.Note that this is about Javascript bookmarks (bookmarklets). You cannot use this workaround to load
javascript:
URLs typed directly in the location bar. These have been disabled since Firefox 6, as a consequence of bug 656433 (phishing ofjavascript:
URLs). Bug 680302 is a feature request to allow turningjavascript:
URLs back on through a preference. Valadrem has written the InheritPrincipal extension to remove this restriction (I haven't tested it). You can still type and run Javascript code in the Scratchpad (press Shift+F4, type code, press Ctrl+R).There are restrictions on the Javascript you can run from the URL bar or from a bookmark. For example, since Firefox 7, you cannot resize the window (consequence of the fix to bug 565541); the
services.sync.prefs.sync.dom.disable_window_move_resize
controls this restriction.I have been able to use bookmarklets in recent versions of firefox (I just tested a few on FF23). Two suggestions:
javascript:alert("it%20works")
instead ofjavascript:alert("it works")
javascript:((function(){alert("it%20works");})())
NOTE: this solution no longer appears to work as of FF41. See JS Bookmarklets stopped working in Firefox 41.
Since Firefox's default behavior for new tabs is
about:newtab
, which is nothing, and bookmarklets only run once something is loaded, you can do the following to set a default page, and then run bookmarklets:about:config
browser.newtab.url
about:newtab
toabout:blank
(or URI of your choice)Ctrl-T
and run bookmarklets in new tabs!