首页 > web前端 > js教程 > 如何将参数传递给 Chrome 扩展中的注入内容脚本?

如何将参数传递给 Chrome 扩展中的注入内容脚本?

Barbara Streisand
发布: 2024-10-27 16:22:01
原创
381 人浏览过

How do I pass parameters to injected content scripts in Chrome extensions?

向注入的内容脚本传递参数

使用 chrome.tabs.executeScript() 注入内容脚本时,可能会需要向脚本传递参数。然而,澄清“向文件传递参数”不是一个适用的概念至关重要。

相反,有两个选项需要考虑:在脚本执行之前或之后设置参数。

在执行前设置参数

您可以通过嵌套 chrome.tabs.executeScript 调用来注入具有预定义参数的内容脚本:

<code class="javascript">chrome.tabs.executeScript(tab.id, {
    code: 'var config = 1;'
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});</code>
登录后复制

对于复杂参数,请使用 JSON.stringify:

<code class="javascript">var config = {somebigobject: 'complicated value'};
chrome.tabs.executeScript(tab.id, {
    code: 'var config = ' + JSON.stringify(config)
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});</code>
登录后复制

在 content.js 中:

<code class="javascript">// content.js
alert('Example:' + config);</code>
登录后复制

执行后设置参数

也可以在脚本执行后使用消息传递来设置参数:

<code class="javascript">chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
    chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});</code>
登录后复制

在 content.js 中:

<code class="javascript">chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message.
    // In this example, message === 'whatever value; String, object, whatever'
});</code>
登录后复制

以上是如何将参数传递给 Chrome 扩展中的注入内容脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板