java 打开网页并运行脚本_如何在其他页面脚本之前制作firefox附加内容脚本注入并运行脚本?...

我正在使用浏览器扩展/插件 . 我们在Chrome中使用它,所以我试图让它在Firefox中运行 .

我已经在Firefox Developer Edition 49.0a2(2016-07-25)中加载了我的加载项 .

我的扩展涉及将content_script设置为 run_at: document_start ,因此它可以在其他页面脚本运行之前注入脚本标记,因此它可以使对象全局可用于网站 .

这似乎在Chrome中运行良好,但在Firefox中,它已被证明有点竞争条件,其他页面资源大部分时间都在加载 .

是否有一种策略来加载内容脚本,以便在任何其他页面脚本运行之前注入并加载脚本?

当我添加日志时,我可以很好地隔离发生的事情 . 在此示例内容脚本中:

// inject in-page script

console.log('STEP 1, this always happens first')

var scriptTag = document.createElement('script')

scriptTag.src = chrome.extension.getURL('scripts/inpage.js')

scriptTag.onload = function () { this.parentNode.removeChild(this) }

var container = document.head || document.documentElement

// append as first child

container.insertBefore(scriptTag, container.children[0])

现在如果文件 scripts/inpage.js 只是运行一个日志,就像

console.log('STEP 2, this should always run second')

我用这样的脚本访问一个页面:

console.log('Step 3, the page itself, should run last')

实际上,步骤2和步骤3以非确定性顺序运行 .

非常感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值