gpt4 book ai didi

javascript - 如何从内容脚本调用 chrome.tabs.create API?

转载 作者:行者123 更新时间:2023-12-03 09:00:07 24 4
gpt4 key购买 nike

我正在开发一个 Chrome 扩展,我想在网页上注入(inject)一个按钮。 单击按钮时,我想调用 chrome.tabs.create API 以在新选项卡中打开 HTML 页面。

众所周知,我们无法使用内容脚本直接打开选项卡,那么实现上述功能的解决方案是什么。

假设我在按钮上注入(inject)了一个元素名称“button”,我已使用以下代码添加了 evnetHandler 但如何使用此函数在 background.js 中创建新选项卡

button.addEventListener('click',clickhandeler,true);

manifest.json 文件:-

{
"name": "my chrome extension",
"version": "1.0",
"manifest_version": 2,
"description": "open the tab when button is cllicked",

"permissions":["activeTab","tabs"],
"background": {
"scripts": ["event.js"],
"persistent": false
},

"browser_action": {
"name": "Manipulate DOM",


"default_icon": "icon.png"
},
"content_scripts": [ {
"js": [ "jquery.min.js", "inject.js" ],
"css": [ "inject.css" ],
"matches": [ "http://*/*", "https://*/*"]
}]
}

最佳答案

以下评论:为什么不向后台脚本发送消息并让它打开新选项卡?

在您的页面脚本中:

$('button').click(function(){
chrome.runtime.sendMessage("newtab");
});

在你的background.js中

chrome.runtime.onMessage.addListener(function(message){
if (message == "newTab){
var url = "http://google.com/";
chrome.tabs.create({ url: url });
}
});

注意:这是一个非常简单的示例,因为您没有显示 HTML。 button 只会匹配任何按钮,因此您需要更新该选择器以匹配您的 HTML。此外,我们通常有一个用于消息的有效负载结构,其中包含消息类型(字符串)和其他参数。

关于javascript - 如何从内容脚本调用 chrome.tabs.create API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com