google-chrome - 尽管“webstore不能由扩展编写脚本”,如何将webstore URL传递给扩展
问题描述
经过大量搜索后,我发现了 Rob 的答案:https ://stackoverflow.com/a/11614440/7907844 “webstore 不能由扩展编写脚本”。
我只想提取 URL 并将其传递给扩展。有没有办法做到这一点?我可以从后台脚本查询所有打开的选项卡,并将活动选项卡 URL 保存在扩展可访问的变量中吗?
解决方案
我最终实现了后台脚本,该脚本将当前活动的选项卡 URL 保存在我从 popup.js 中访问的变量中,因为 webstore 不允许我们在那里运行内容脚本。chrome.extension.getBackgroundPage()
popup.js 里面只有在我使用var currentUrl
.
var currentUrl;
var activeTabId;
chrome.tabs.onUpdated.addListener(
function (tabId, changeInfo, tab) {
if (changeInfo.status === "complete") {
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
let activeTab = tabs[0];
currentUrl = activeTab.url;
activeTabId = activeTab.id;
if(currentUrl.includes("chrome.google.com/webstore/detail")) {
chrome.pageAction.show(activeTab.id);
} else {
chrome.pageAction.hide(activeTab.id);
}
console.log("page loaded: ", currentUrl);
});
}
});
chrome.tabs.onActivated.addListener(function (object) {
activeTabId = object.tabId;
chrome.tabs.get(activeTabId, function(tab){
currentUrl = tab.url;
if(tab.url.includes("chrome.google.com/webstore/detail")) {
chrome.pageAction.show(object.tabId);
} else {
chrome.pageAction.hide(object.tabId);
}
console.log("loaded tab selected: ", tab.url);
})
});
推荐阅读
- django - 使用可变数量的关键字优化 django 中搜索过滤器的函数代码 - 代码太多,我是初学者
- .net-core - 无法在 c# dotnetcore 中调用 JNI 导出的函数
- perl - Perl Net::SMTP 在 Fedora 上失败
- python - PyQt6 - QPalette 无法在 mdiArea 窗口中正常工作
- cuda - MIO/L1TEX 的“长”和“短”记分牌是什么?
- angular - Jest - 在 jest.setTimeout.Error 指定的 5000 毫秒超时内未调用异步回调
- node.js - 如何使用 sendGrid 将使用 react-pdf 包生成的 PDF 作为附件附加到电子邮件
- wso2 - WSO2 EI 6.4 和错误原因:org.apache.ws.security.WSSecurityException
- amazon-web-services - 找不到我创建的 AWS EC2 存储磁盘
- html - 为什么我的
- Bootstrap 5中的元素总是溢出?