有没有办法知道内容脚本是否已被成功注入。我知道我们可以使用消息传递。但除此之外还有其他方法吗?Chrome扩展程序 - 知道内容脚本是否已被注入?
回答
我认为最简单的方法是使用可选的回调executeScript
。使用'success';
自行结束您的内容脚本。那么你的注射电话会是:
chrome.tabs.executeScript(tabId, details, successStatus);
function successStatus(frameResults) {
if (frameResults[0] === 'success') {
// successfully injected
}
}
你是什么意思? 。 –
'frameResults'是一个数组,其中每个数组元素是框架中内容脚本中最后一个评估过的表达式。所以你希望你的内容脚本以一个表示成功加载的表达式结束。在这种情况下,你可以简单地写成“'成功';'在自己的路线上。 Chrome会评估该表达式,这将成为结果数组中的条目。 – Teepeemm
我加了就像你说的..但是接收空 –
好吧,说我们正在谈论的实际页面,而不是背景延伸。
首先,你必须在页面中包含的scrits,这里是即时通讯做这个
var j = document.createElement('script');
j.src = chrome.extension.getURL('bower_components/jquery/dist/jquery.min.js');
(document.head || document.documentElement).appendChild(j);
var k = document.createElement('script');
k.src = chrome.extension.getURL('bower_components/jquery-ui/jquery-ui.min.js');
(document.head || document.documentElement).appendChild(k);
再怎么检查它是否被加载我有一个if条件
if((/in/.test(document.readyState)) || (undefined === Backbone)) {
setTimeout('refresh(' + f + ')', 10);
} else {
f();
console.log("Loaded Main Application");
所以我询问状态是否准备就绪,然后检查浏览器是否加载了我的js。
希望它可以帮助
OP在后台/活动页面中使用executeScript,因此他的注入方式与您不同。 (并且不要使用'setTimeout'的eval形式,在这种情况下,你应该使用'refresh.bind(undefined,f)'。) – Teepeemm
谢谢你,生病了吗 – jstuartmilne
- 1. Chrome扩展程序,内容脚本的程序化注入
- 2. Chrome扩展代码和内容脚本vs注入脚本
- 3. Chrome扩展内容脚本
- 4. 从内容脚本触发Chrome扩展程序通知
- 5. 内容脚本在Chrome扩展程序被执行多次
- 6. Chrome扩展程序:如何在注入后删除内容脚本?
- 7. Chrome扩展程序:创建选项卡,然后将内容脚本注入它
- 8. Chrome扩展程序:如何删除注入后的内容脚本CSS?
- 9. Chrome扩展程序 - 每页加载多次注入内容脚本
- 10. Chrome扩展内容脚本CSS不注入
- 11. 基于URL注入Chrome浏览器扩展内容脚本
- 12. Chrome扩展的内容脚本没有被注入特定网站
- 13. Chrome扩展的内容脚本没有被注入任何网页
- 14. 内容脚本没有被注入到扩展html页面
- 15. 使用Chrome扩展内容脚本嵌入其他内容
- 16. 内容脚本没有回应内容脚本的Chrome扩展
- 17. Chrome扩展内容脚本中的JQueryUI
- 18. Chrome扩展(内容脚本)缓存CSS
- 19. Chrome扩展引用/从内容脚本
- 20. 停止内容脚本在Chrome扩展
- 21. Chrome扩展 - 内容脚本点播
- 22. Chrome扩展:如何检测是否使用内容脚本安装了扩展
- 23. Chrome扩展内容脚本不是首先注入的,如何调试?
- 24. 内容脚本中的Chrome扩展程序storage.sync.set引发异常
- 25. Chrome扩展程序,内容脚本和XSS攻击
- 26. Chrome扩展程序使用内容脚本更改innerText
- 27. Chrome扩展程序:打包前调试内容脚本
- 28. Chrome扩展程序 - 内容脚本匹配限于权限吗?
- 29. Chrome扩展程序:内容脚本和background.html之间的通信
- 30. Chrome扩展程序内容脚本:等待变量
你用'executeScript'注入它吗? – wOxxOm
你的意思是在实际的页面中,而不是在后台应用程序的权利? – jstuartmilne
是使用performcript ... –