gpt4 book ai didi

javascript - Chrome Extension 无法让 ContextMenu 仅加载特定页面

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

我从 Google 的 contextMenu 示例开始。它使用适用于所有页面的背景页面创建上下文菜单。

我正在寻找一种专门为页面创建上下文菜单的方法。我尝试定位的示例页面是任何 Reddit 页面。

我的manifest.json:

{
"name": "Context Menus Sample",
"description": "Shows some of the features of the Context Menus API",
"version": "0.6",
"permissions": ["contextMenus"],

"manifest_version": 2,
"content_scripts": [
{
"matches": ["http://www.reddit.com/*"],
"js": ["sample.js"]
}
]
}

sample.js 是同一个from the original contextMenu example project由谷歌示例提供。它最初是一个背景页面脚本,我已将其移至内容脚本部分,以便它只会加载指定的 (Reddit) URL。

来自 sample.js 的示例代码:

var checkbox1 = chrome.contextMenus.create(
{"title": "Checkbox1", "type": "checkbox", "onclick": checkboxOnClick}
);

所以我的困惑在于为什么当你在 reddit.com 上时上下文菜单没有出现。我的印象是 sample.js 在 url 匹配时触发。

最佳答案

can't use (most) of the chrome.* APIs from a content script .您的 sample.js 运行,但 API 调用失败。

相反,您应该将其移回后台脚本,并阅读 chrome.contextMenus.create() 上的文档.

具体来说,您可以传递documentUrlPatterns参数来限制上下文菜单出现的位置:

var checkbox1 = chrome.contextMenus.create({
"title": "Checkbox1",
"type": "checkbox",
"onclick": checkboxOnClick,
"documentUrlPatterns": ["*://*.reddit.com/*"]
});

关于javascript - Chrome Extension 无法让 ContextMenu 仅加载特定页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29922237/

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