对于chrome.runtime.sendmessage如何将数据从Content.js文件发送到chrome.runtime.onMessage Background.js文件的语法,我有一些问题。我试图注入一个脚本来查看网页指标,并在导航到新页面时在Chrome扩展弹出中显示它们。我无法看到从content.js脚本发送到background.js脚本的变量。我不需要在会话之间缓存数据,只希望我的脚本运行在用户所在的当前选项卡中。
我的Content.js脚本应该与位于Manifest.js中的"run_at": "document_idle"一起执行。
B
日安。
我在将消息从后台脚本发送到内容脚本时遇到了问题。每次用户在浏览器选项卡之间切换时,我都会尝试发送消息。
我知道这个错误。Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
下面的是扩展本身的代码.
背景脚本:
chrome.tabs.onActivated.addListener(function changeTab(activeInfo) {
var port = chrome.tabs.connect(activeInfo.tabId);
我是新的,但我试图创建一个铬的扩展,以操纵在网页上的王国。目前,我有两个按钮,每个按钮将执行不同的任务。下面的内容有意义吗?另外,如果我有多个内容脚本,如何将它们添加到manifest.json中?
popup.js:
function injectTheScript() {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
// query the active tab, which will be only one tab
//and inject
我目前正在开发一个chrome扩展程序,源代码是。目标是将自定义Javascript注入到网页中。
目前,我将每个自定义Javascript注入存储在localStorage中,并从内容启动调用它们。我让document_start.的run_at
我使用它,从后台脚本获得存储的注入:
chrome.extension.sendMessage({method:"get_injects"},function(injects){
for(index in injects){
if(/^items\./.test(index)){
it
我正在开发Chrome扩展程序。我没有使用manifest.json来匹配所有URL的内容脚本,而是在用户单击扩展图标时调用chrome.tabs.executeScript来惰性地注入内容脚本。
我正在尝试的是避免多次执行脚本。因此,我的内容脚本中有以下代码:
if (!window.ALREADY_INJECTED_FLAG) {
window.ALREADY_INJECTED_FLAG = true
init() // <- All side effects go here
}
问题1,这是否足够安全,每次单击扩展图标时都会天真地调用chrome.tabs.exec