Firefox 13 中Javascript书签停止工作

15
在Firefox 13版本中,使用javascript: URL的书签(即带有javascript: alert("it works")的书签)停止了工作。是否有解决方法可以在Firefox 13中使用javascript:书签?

@zerkms,我想知道是否有任何新的方法来解决这个问题。 - Satya Prakash
@BorisZbarsky 显然,只有在尝试在新的、非 URL 加载的选项卡中运行时才会出现此问题。 - Michael Paulukonis
是的,@MichaelPaulukonis,我需要每天填写我的互联网服务提供商的登录表单。为此,我使用了js书签。如果页面已经打开,则填写并提交,否则打开页面并完成流程。但现在我需要加载页面才能使其工作。 - Satya Prakash
这也让我着迷。JavaScript 书签是生活的必备品! - Michael Paulukonis
问题出现在FF41中,这里的解决方案已经不再适用。我有一个问题和一个潜在的答案(我不喜欢)@ https://dev59.com/2o_ea4cB1Zd3GeqPO3tW - Michael Paulukonis
显示剩余3条评论
3个回答

23
这是由于Bug 728313 - 在新标签页上使用书签关键字到书签失败以及Bug 739387 - Aurora 13a 新标签页显示不允许选择 Javascript 书签所导致的。此错误影响 Firefox 13 及以上版本。
由于修复Bug 723808,在新创建的标签页中禁用了javascript:书签。如果您首先加载几乎任何 URL,包括about:blank,那么 Javascript 书签将在该标签页中工作。
请注意,这是关于Javascript书签(书签脚本)。您无法使用此解决方法在位置栏中直接输入javascript: URL。由于Bug 656433(钓鱼攻击javascript: URL),自Firefox 6起已禁用它们。 Bug 680302是一个功能请求,允许通过首选项重新启用javascript: URL。 Valadrem编写了InheritPrincipal 扩展程序以删除此限制(我尚未测试)。您仍然可以在 Scratchpad 中输入和运行 Javascript 代码(按下Shift+F4,输入代码,按Ctrl+R)。

URL地址栏或书签中可运行的JavaScript存在限制。例如,自Firefox 7以来,无法调整窗口大小(由对bug 565541的修复引起);services.sync.prefs.sync.dom.disable_window_move_resize控制此限制。


7

注意:自火狐浏览器41版本以后,该解决方案似乎不再适用。详见JS Bookmarklets stopped working in Firefox 41


如果你首先加载任何网址(包括 about:blank),然后在该标签页中运行 Javascript 书签,它就会起作用。

由于 Firefox 对于新标签页的默认行为是 about:newtab,这实际上什么都没有,而且书签只能在有“东西”加载时运行,因此您可以按照以下步骤设置默认页面,然后运行书签:

  1. 打开 about:config
  2. 找到 browser.newtab.url
  3. 双击并将其从 about:newtab 更改为 about:blank(或任何您选择的 URI)
  4. Ctrl-T 在新标签页中运行书签!

2

我最近在使用火狐浏览器的最新版本中能够使用书签脚本(我刚在FF23上测试了一些)。以下是两个建议:

  1. 将空格替换为%20。例如,尝试使用 javascript:alert("it%20works") 代替 javascript:alert("it works")
  2. 如果这还不够,请将整个书签脚本封装在一个匿名函数内,所以在你的例子中,你会写成 javascript:((function(){alert("it%20works");})())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接