gpt4 book ai didi

javascript - 消息未在第一页加载时到达 - Google Chrome 消息从后台传递到内容脚本

转载 作者:行者123 更新时间:2023-11-30 05:32:43 24 4
gpt4 key购买 nike

<分区>

我正在开发一个谷歌插件/扩展,我遇到了一个问题,我只能推测它的原因。在我的 background.js 后台脚本中,我试图将图像数据发送到我的 content.js 内容脚本。

当我第一次在新选项卡中加载页面时,我只收到“已发送回复!”,但没有收到“回复”。然后我使用 f5 键刷新,这次我也收到了等待的“收到响应”消息。

有没有可能我的 background.js 还没有在内存中?如果是这样,我该如何解决?当我在 chrome://extensions/下重新加载我的插件并重新加载一个已经存在的选项卡时,也会发生这种情况。

background.js

chrome.extension.onMessage.addListener(
function(msg, sender, sendResponse) {
if((msg.action && (msg.action == "getPixels")) && msg.imgPath)
{
var canvas = document.createElement("canvas");
canvas.style.border = "none";
var img = new Image();
img.src = msg.imgPath;
var thewaitx = function()
{
if(img.complete && (img.width + img.height) > 0)
{
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext("2d").drawImage(img, 0, 0);
data = canvas.getContext("2d").getImageData(0, 0, img.width, img.height).data

sendResponse({value: data});
alert("response sent!");
}
else {setTimeout(thewaitx, 2000);}
};
thewaitx();

}
}
);

content.js

function findDataBySignature()
{
img = document.getElementsByClassName("someid")[0].getElementsByTagName("img")[0];
chrome.extension.sendMessage({action: "getPixels", imgPath:img.src}, function(response)
{
alert("response received");
data = response.value;
//blahblah
}
}

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