Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将参数从后台脚本传递到chrome扩展中的内容脚本?

如何将参数从后台脚本传递到chrome扩展中的内容脚本?
EN

Stack Overflow用户
提问于 2018-02-08 11:49:51
回答 2查看 3.3K关注 0票数 5

我有一个chrome扩展,它从后台脚本调用内容脚本,将HTML插入到网页中。

当我调用内容脚本(inject.js)时,我想从内容脚本(eventpage.js)中传递一些参数,但是这样做有一些困难。我也不想使用利用chrome.storage或本地存储的解决方案。

Manifest.json (相关部件):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "manifest_version": 2,
  "content_scripts": [
    {
      "matches": ["http://*/*"],
      "js": ["inject.js"]
    }
  ],
  ...     
  "background": {
    "scripts": ["eventpage.js",...],
    "persistent": false
  },

}

Eventpage.js (背景):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Want to add the parameter here

chrome.tabs.executeScript(tabId, {
    file: 'inject.js'
});

Inject.js (内容):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function() {

    // Want to retrieve the parameter passed from eventpage.js here

})();
EN

回答 2

Stack Overflow用户

发布于 2018-02-09 06:50:46

使用信息传递

Eventpage.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Want to add the parameter here
var parameterToSend;

chrome.tabs.executeScript(tabId, {
    file: 'inject.js'
}, function() {
    chrome.tabs.sendMessage(tabId, {parameter: parameterToSend});
});

Inject.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function() {

    // Want to retrieve the parameter passed from eventpage.js here

    chrome.runtime.onMessage.addListener(function(message) {
        var receivedParameter = message.parameter;

        //use receivedParameter as you wish.

    });

})();
票数 4
EN

Stack Overflow用户

发布于 2018-02-08 13:11:29

您想要使用的解决方案有时很方便,但它并不称为内容脚本,它用于在页面上插入HTML的不同情况。您正在尝试将JS的一部分直接插入到网站中,而将inject.js文件指定为内容脚本。

WebExtensions标准中的内容脚本意味着脚本可以访问网页的HTML (除去一些限制,比如iframes)并可以修改它。

考虑将背景脚本的内容更改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chrome.tabs.query({active:true, lastFocusedWindow: true}, function(tabs){
    if (tabs.length > 0) {
        chrome.tabs.sendMessage(tabs[0].id, {
           type:"message-type",
           param: 'param'
         });
}});   

在内容脚本中,为从后台检索的消息添加侦听器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chrome.extension.onMessage.addListener(callback);

其中callback变量应该是要在inject.js文件中运行的函数。这个函数可能在其签名中得到一个参数,当它执行时,它包含作为chrome.tabs.sendMessage函数的第二个参数传递的JS对象。

在这种情况下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 var callback = function(data) {
    // here in data.param you have your parameter
 }

另外,如果您确实需要使用代码注入,那么您必须做两件事:

  1. inject.js的content_script部分中删除manifest.json,并将其添加到web_accessible_resources部件中。
  2. 阅读有关注入代码将一个参数传递给使用chrome.tabs.executeScript()注入的内容脚本的所有必要信息
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48693659

复制
相关文章
Linux/Unix shell 参数传递到SQL脚本
      在数据库运维的过程中,Shell 脚本在很大程度上为运维提供了极大的便利性。而shell 脚本参数作为变量传递给SQL以及SQL脚本也是DBA经常碰到的情形之一。本文主要讨论了如何将shell脚本的参数传递到SQL脚本之中并执行SQL查询。   有关shell与SQL之间的变量传递,请参考:  Linux/Unix shell sql 之间传递变量
Leshami
2018/08/14
2K0
向python脚本传递参数
下面的例子是一个用来提取文本log.txt中含有匹配字符串的文本行,匹配字符串的字符串当作参数传递给python脚本。
py3study
2020/01/09
2.3K0
20.30 expect脚本传递参数
expect脚本传递参数 传递参数 #!/usr/bin/expect set user [lindex $argv 0] //第一个参数 set host [lindex $argv 1] //第二个参数 set passwd "123123a" set cm [lindex $argv 2] //第三参数 spawn ssh $user@$host expect { "yes/no" { send "yes\r"} "password:" { send "$passwd\r" } } exp
运维小白
2022/01/06
1.2K0
shell脚本的参数传递一例
在shell脚本中,我们也可以像其他编程语言一样处理传递的option以及对应的值,比如: 既支持 --name=<NAME>, 也支持 --name <NAME>, 那么如何才能做到呢? 看下面的例子:
qsjs
2020/06/09
7720
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )
在 【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 ) 博客中 , 已经分析了 Groovy 脚本的本质 , Groovy 脚本继承了 groovy.lang.Script 类 ;
韩曙亮
2023/03/30
1.9K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )
从SQL注入到脚本
翻译:https://pentesterlab.com/exercises/from_sqli_to_shell/course
顾翔
2022/09/23
2.1K0
从SQL注入到脚本
chrome调试JavaScript脚本
随着 JavaScript 应用的复杂性逐渐提高,开发者需要有力的调试工具来帮助他们快速发现问题的原因,并且能高效地修复它。Chrome DevTools 提供了一系列实用的工具使得调试 JavaScript 应用不再是一件痛苦的事。
空空云
2018/09/27
1.9K0
chrome调试JavaScript脚本
如何将awk脚本移植到Python【Programming(Python)】
脚本是解决问题的有效方法,而awk是编写脚本的出色语言。 它特别擅长简单文本处理,并且它可以带您完成配置文件的某些复杂重写或目录中文件名的格式重新格式化。
Potato
2019/11/17
1.4K0
如何将awk脚本移植到Python【Programming(Python)】
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.7K0
shell脚本后台运行
1. 使用&符号在后台执行命令 你可以在Linux命令或者脚本后面增加&符号,从而使命令或脚本在后台执行,例如:. $ ./my-shell-script.sh & 2. 使用nohup在后台执行命令 使用&符号在后台执行命令或脚本后,如果你退出登录,这个命令就会被自动终止掉。要避免这种情况,你可以使用nohup命令,如下所示: $ nohup ./my-shell-script.sh & 3. 使用screen执行命令 通过nohup和&符号在后台执行命令后,即使你退出登录,这个命令也会一直执行。但是,你
一灰灰blog
2018/02/06
4.3K0
后台运行python脚本
在Linux系统中,可以使用nohup命令将一个进程放到后台运行,并将该进程的输出重定向到一个文件中。以下是在后台运行Python脚本的步骤:
用户8658949
2023/03/04
3.8K0
能安装Chrome扩展和油猴脚本的手机浏览器
之前分享过很多Chrome扩展的文章,不过都是电脑端的,今天分享几个手机上能安装扩展和油猴脚本的浏览器。
苏生不惑
2021/04/22
7.1K0
能安装Chrome扩展和油猴脚本的手机浏览器
python调用bat脚本并向bat脚本传递list变量
我用的是subprocess.call的方法,但是无法传递变量,求大神指点,希望可以实现python调用bat脚本并向bat脚本传递list变量
用户7542547
2020/07/09
3K0
js传递数组到后台
方法一:  1.使用JSON.stringify 将数组对象转化成json字符串;
超级小可爱
2023/02/20
3.9K0
python脚本下载小密圈中的内容
这个python脚本主要的目的是为了批量下载指定小密圈里的所有文件,我们就以安全文库为例:
用户1467662
2018/07/26
1.5K0
python脚本下载小密圈中的内容
shell脚本中echo显示内容带颜色
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 字背景颜色和文字颜色之间是英文的"" 文字颜色后面有个m 字符串前后可以没有空格,如果有的话,输出也是同样有空格 字颜色 30—37 echo -e "\033[30m 黑色字 \033[0m" ec
山海散人
2021/03/03
1.5K0
从零实现的Chrome扩展
Chrome扩展是一种可以在Chrome浏览器中添加新功能和修改浏览器行为的软件程序,例如我们常用的TamperMonkey、Proxy SwitchyOmega、AdGuard等等,这些拓展都是可以通过WebExtensions API来修改、增强浏览器的能力,用来提供一些浏览器本体没有的功能,从而实现一些有趣的事情。
WindRunnerMax
2023/07/24
5550
[作品招募]从图表模板到python脚本,为有才华的内容生产者搭台。
Excel催化剂,完成平台华丽转变,有【Excel图表】和【python脚本】两大内容集成功能。
Excel催化剂
2021/08/19
4420
[作品招募]从图表模板到python脚本,为有才华的内容生产者搭台。
shell 脚本中关于用户输入参数的处理
bash shell 中有一些特殊变量, 被称为 位置参数(positional parameter).
IT工作者
2022/07/03
2.5K0
Centos后台挂机Python脚本
注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。
SingYi
2022/07/14
1.8K0
Centos后台挂机Python脚本

相似问题

Chrome扩展-消息从后台传递到内容脚本

11

Chrome扩展:从内容传递到后台脚本的消息

12

如何将chrome扩展中的选定文本从后台脚本传递到内容脚本?

12

Chrome扩展-如何将DOM从内容脚本传递到后台页面?

15

从后台脚本传递到内容脚本的Chrome扩展消息不起作用

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文