gpt4 book ai didi

javascript - 如何有选择地显示 Chrome 扩展程序的工具栏图标?

转载 作者:行者123 更新时间:2023-12-03 11:52:27 24 4
gpt4 key购买 nike

我有一个带有背景页面的 Chrome 扩展。 background.js 脚本仅在某些站点上正确运行(按预期)。如何在不使用该图标的网站上隐藏 google chrome 工具栏中的图标?优选地,仅在 list 中定义的允许的站点上显示图标。

我正在尝试使用 pageActions,这是我当前无法运行的代码。没有显示图标。

// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Called when the url of a tab changes.
function checkForValidUrl(tabId, changeInfo, tab) {
// If the tabs url starts with "http://specificsite.com"...
if (tab.url.indexOf('http://') == 0) {
// ... show the page action.
chrome.pageAction.show(tabId);
}
};

// Listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(checkForValidUrl);

list :

  "page_action": {
"default_icon": "key.png",
"default_title": "Download this Deck"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},

编辑:在我重新加载扩展程序后,它似乎可以工作,直到我使用以下代码切换选项卡:

chrome.tabs.getSelected(null, function(tab) {
chrome.pageAction.show(tab.id);
});

最佳答案

有一个特定的 API 可以满足您的情况,declarativeContent API .

当前实现的唯一可能的操作是根据一组规则显示页面操作按钮。请参阅文档以获取更广泛的示例。

chrome.runtime.onInstalled.addListener(function(details) {
var rule = {
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostSuffix: 'example.com' },
})
],
actions: [ new chrome.declarativeContent.ShowPageAction() ]
};

chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([rule]);
});
});

关于javascript - 如何有选择地显示 Chrome 扩展程序的工具栏图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25761143/

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