【问题标题】:Firefox extension inject script before loading any pageFirefox 扩展在加载任何页面之前注入脚本
【发布时间】:2014-04-28 13:21:12
【问题描述】:

我编写了一个 Firefox 扩展程序,在安装此扩展程序时将一些脚本和 css 注入到所有加载的网页中。

到目前为止,一切正常。一旦我打开一个新页面,它就会加载脚本并注入 css。但我想要的是扩展在页面之前加载。

示例;我正在加载twitter intent 页面。使用我的扩展程序,我正在自定义此页面。现在我首先看到了 twitter 页面,然后加载了扩展程序并实现了我对意图页面的更改。

我想要的恰恰相反。我首先想从扩展中加载所有内容,因此一旦 twitter 页面加载,它就可以通过我的扩展实现的自定义更改直接可见。

目前我正在使用以下几行来实现脚本/样式。虽然我已经将“contentScriptWhen”设置为启动,但这并不能解决我的问题..

include: '*',
contentScriptFile: [data.url('jq.js'), data.url('js.js')],
contentStyleFile: data.url("css.css"),
contentScriptWhen: 'start',

【问题讨论】:

  • 嘿伙计,你有解决方案吗?有的话可以分享一下吗或者你能详细说明一下,以便我可以帮助你。
  • 嘿,我已经“解决”了这个问题。加载索引页面后,我将在后台加载 Twitter Intent (TI) 页面。加载 TI 页面时,它会再次关闭。该页面现在在缓存中,下次加载 TI 时,一切都会立即正确。你可以在这里找到更多关于后台加载的信息:developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs
  • 您能否发布您的代码并在可能的情况下对其进行解释。如果我有更多的 src 而不仅仅是文档,那就太好了。你会非常好。当我试图帮助 sdk 人时,我经常参考这些主题。
  • 在这个 JSFiddle 中显示了我的 main.js 中使用的 Javascript 代码:jsfiddle.net/ronnyrr/8aBw7/2
  • 非常感谢,您能否发布解决方案并接受您自己的解决方案,这是推荐的方式。真的很感激。

标签: firefox firefox-addon firefox-addon-sdk


【解决方案1】:

我已经“解决”了这个问题。加载索引页面后,我将在后台加载 Twitter Intent (TI) 页面。

加载 TI 页面时,它会再次关闭。该页面现在在缓存中,下次加载 TI 时,一切都会立即正确。

你可以在这里找到更多关于后台加载的信息:developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs

在这个小提琴中展示了我是如何做到的; FIDDLE

【讨论】:

    【解决方案2】:

    您还可以从阻止文档被解析开始,然后在侧面获取相同的文档,对获取的文档进行任何修改并将其注入页面。这是我目前使用的https://stackoverflow.com/a/36097573/6085033

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      • 1970-01-01
      • 2018-07-25
      • 2011-12-11
      相关资源
      最近更新 更多