gpt4 book ai didi

javascript - onMessage 未在 Chrome 扩展程序上执行

转载 作者:行者123 更新时间:2023-11-29 15:30:37 24 4
gpt4 key购买 nike

引用 this post ,我正在尝试使用 executeScript 或 sendMessage 将变量传递到我的 content.js 文件。使用 Chrome 开发工具,我看到它正在访问我的 content.js 文件,并且它还运行我插入的测试警报,但是当它到达

chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {

它完全跳过它。我不确定这里发生了什么?

弹出窗口

function search() {
var name = document.getElementById('txtSearch').value;
chrome.tabs.executeScript({ file: "jquery.js" }, function () {
chrome.tabs.executeScript(null, {
code: 'var name = ' + name + ';'
}, function () {
chrome.tabs.executeScript({ file: 'content.js' });
});
});
}
document.getElementById('btnSearch').addEventListener('click', search);

或使用 sendMessage 的 popup.js

function search() {
var name = document.getElementById('txtSearch').value;
chrome.tabs.executeScript({ file: "jquery.js" }, function () {
chrome.tabs.executeScript({ file: 'content.js' }, function () {
chrome.tabs.sendMessage({ name: name });
});
});
}
document.getElementById('btnSearch').addEventListener('click', search);

内容.js

alert('hi');
chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
console.log(message.name);
});

最佳答案

引用我在 SO 上找到的不同答案(无法在 atm 上找到),我缺少将选项卡 ID 传递给内容脚本的函数。

chrome.tabs.query({ active: true }, function (tabs) {
chrome.tabs.sendMessage(tabs[0].id, {'type': type, 'name': name });
});

关于javascript - onMessage 未在 Chrome 扩展程序上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299958/

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