我正在开发一个chrome扩展程序,其功能几乎与在新标签页中打开一样,但“在新标签页中打开”显然不允许打开内部网文件的链接,例如file://由于chrome {{3} }。因此,通过此扩展程序,拥有此自定义扩展程序的用户将能够打开网址链接。
当我选择链接文本的任何部分时,我设法放置了一些内容,然后我右键单击上下文菜单,它可以在新选项卡中打开链接。我现在想要的是能够在不选择文本的情况下右键单击链接。
我已尝试将contexttype更改为link,但似乎无效。
这是执行选择然后在新选项卡中打开的background.js代码。
我希望也许有人可以提出一些想法和解释代码,告诉我在这里可以做些什么让我继续前进。
background.js
var context = "selection";
var title = "Open Local File";
var id = chrome.contextMenus.create({
"title": title,
"contexts":[context],
"id": "context" + context}
);
// add click event
chrome.contextMenus.onClicked.addListener(onClickHandler);
function onClickHandler(info, tab) {
var sText = info.linkUrl;
var myUrl = sText;
chrome.tabs.create({ url: myUrl });
};
的manifest.json
{
"name": "Right-click context sample",
"description": "sample",
"version": "0.0.1",
"permissions": ["contextMenus", "tabs", "<all_urls>"],
"background": {
"page" : "background.html",
"persistent": false
//"scripts": ["background.js"]
},
"manifest_version": 2
}
谢谢!
答案 0 :(得分:1)
使用ContextType。
var context = "selection";
var title = "Open Local File";
var id = chrome.contextMenus.create({
"title": title,
"contexts":[context],
"id": "context" + context,
contexts:["all"]}
);
// add click event
chrome.contextMenus.onClicked.addListener(onClickHandler);
function onClickHandler(info, tab) {
var sText = info.linkUrl;
var myUrl = sText;
chrome.tabs.create({ url: myUrl });
};
答案 1 :(得分:0)
我通过为所有人设置以下背景找到了解决方案。
var context = "all";
var title = "Open Local File";
var id = chrome.contextMenus.create({
"title": title,
"contexts":[context],
"id": context
});