gpt4 book ai didi

javascript - Chrome 扩展程序、新创建选项卡的内容脚本消息仅适用于警报

转载 作者:行者123 更新时间:2023-11-28 01:35:19 25 4
gpt4 key购买 nike

我正在创建一个 Chrome 扩展程序,它从当前选项卡中获取 URL,并将其放入新打开的选项卡中的字段中。新选项卡中的字段似乎只有在发送消息之前出现警报时才会填写。可能是因为异步性,但是我在创建选项卡的回调函数中执行了 sendMessage 。

这是我的背景.js:

function sendMessage(msg) {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, msg);
});
}

chrome.browserAction.onClicked.addListener(function() {
chrome.tabs.getSelected(null, function(tab) {
var tabURL = tab.url;

chrome.tabs.create({url: "https://..<url>.."}, function(tab) {
alert(''); //<- it only seems to work with this alert in it.
sendMessage(tabURL);
});
});
});

还有我的 content.js:

chrome.runtime.onMessage.addListener(
function(request, sender) {
document.getElementById('field').value = request;
});

最佳答案

找到了解决方案,感谢亚伯拉罕:

使 tabURL 成为全局变量:

var tabURL = '';

从 chrome.tabs.create 中删除了回调函数:

chrome.tabs.create({url: "https://..<url>.."});

向background.js添加了onUpdated监听器

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
sendMessage(tabURL);
});

关于javascript - Chrome 扩展程序、新创建选项卡的内容脚本消息仅适用于警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21605214/

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