Javascript bookmark stopped working in Firefox 13

前端 未结 3 1775
情歌与酒
情歌与酒 2021-02-19 05:40

In Firefox version 13, bookmarklets (bookmarks with a javascript: URL, e.g. javascript: alert(\"it works\") stopped working. Is there any solution to u

相关标签:
3条回答
  • 2021-02-19 06:14

    I have been able to use bookmarklets in recent versions of firefox (I just tested a few on FF23). Two suggestions:

    1. Replace spaces with %20. For instance, try your example bookmarklet code with javascript:alert("it%20works") instead of javascript:alert("it works")
    2. If this isn't enough, enclose the whole bookmarklet inside an anonymous function, so in your example, you'd write javascript:((function(){alert("it%20works");})())
    0 讨论(0)
  • 2021-02-19 06:34

    NOTE: this solution no longer appears to work as of FF41. See JS Bookmarklets stopped working in Firefox 41.


    If you first load almost any URL, including about:blank, then a Javascript bookmark will work in that tab.

    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:

    1. open about:config
    2. find browser.newtab.url
    3. double-click and change from about:newtab to about:blank (or URI of your choice)
    4. Ctrl-T and run bookmarklets in new tabs!
    0 讨论(0)
  • 2021-02-19 06:36

    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, including about: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 of javascript: URLs). Bug 680302 is a feature request to allow turning javascript: 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.

    0 讨论(0)
提交回复
热议问题