gpt4 book ai didi

javascript - 脚本未在选定选项卡中执行以发送和接收消息

转载 作者:行者123 更新时间:2023-11-30 16:04:06 25 4
gpt4 key购买 nike

我无法让脚本在页面上运行。

这是我的 background.js 的样子:

chrome.tabs.query({
url: 'https://www.tradingview.com/*'
}, function(tabs) {
if (tabs.length == 1) {
var tabURL = tabs[0].url;
alert(tabURL);
alert(tabs[0].id);
chrome.tabs.executeScript(tabs[0].id, {file: "getTradingData.js"}, function(){
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
} else {
alert("Please have one and only one tradingview chart page opened.");
}
});

chrome.tabs.executeScript(tabs[0].id, {file: "getTradingData.js"} 应该执行脚本 getTradingData.js 但我不认为它是。我在未运行的脚本中有一个警报,但在我刷新页面时确实作为内容脚本运行。

这是 ny getTradingData.js 的样子:alert("getTradingData.js 正在运行");

var myPort = chrome.extension.connect();

chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
alert("got message");
if (request.subject == "getPrice")
sendResponse({
msg: price
});
});

最后是我的 manifest.json:

{
"manifest_version": 2,

"name": "Automated TradingView Strategy",
"description": "This extension shows a Google Image search result for the current page",
"version": "1.0",

"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"background": {
"scripts": ["jquery-2.2.3.min.js", "background.js"]
},
"content_scripts": [
{
"matches": ["https://www.tradingview.com/chart/*", "http://www.tradingview.com/*"],
"js": ["jquery-2.2.3.min.js", "getTradingData.js"]
}
],
"permissions": [
"activeTab",
"tabs",
"https://ajax.googleapis.com/"
]
}

我需要能够在“tradingview.com/chart/*”和扩展程序 background.js 之间发送数据。但是,当我刷新扩展时脚本没有加载,因此它无法接收或发送消息。

让我知道我做错了什么。

最佳答案

要使用 executeScript 运行 getTradingData.js,您必须在 permissions 中添加站点地址。

"permissions": ["*://*.tradingview.com/*", "tabs"]

您从后台发送{greeting: "hello"},但您不在getTradingData.js中接受这些数据。因此你没有得到回应。

console.log(response.farewell);

您不发送response.farewell。它们将不会显示。


if (request.subject == "getPrice") {

sendResponse({msg: price});
}

相同。您只会收到提醒。

Programmatic injection

关于javascript - 脚本未在选定选项卡中执行以发送和接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37283151/

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