javascript - Chrome 扩展程序 : ContextMenu Right click link instead of selectiontext?

标签 javascript google-chrome-extension

我正在开发一个 Chrome 扩展,其功能与在新选项卡中打开几乎相同,但“在新选项卡中打开”显然不允许打开 Intranet 文件的链接,例如 file://,因为 chrome security reasons 。因此,通过拥有此扩展程序,拥有此自定义扩展程序的用户将能够打开 url 链接。

我设法将一些内容放在当我选择链接文本的任何部分,然后右键单击上下文菜单时,它可以在新选项卡中打开链接。我现在想要的是能够右键单击链接而不选择文本。

我尝试将上下文类型更改为链接,但似乎不起作用。

这是进行选择然后在新选项卡中打开的background.js 代码。

我希望也许有人可以提供一些想法,或者片段代码,告诉我我可以在这里做什么来让我继续前进。

背景.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 });

};

ma​​nifest.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
}

谢谢!

最佳答案

使用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 });

};

关于javascript - Chrome 扩展程序 : ContextMenu Right click link instead of selectiontext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447683/

相关文章:

javascript - Ember.js:如何在 Javascript 代码中访问模型的属性

google-chrome-extension - 重启浏览器后右键菜单消失

javascript - 如何检查是否在 chrome 存储上设置了变量

Javascript 一次设置 Var

google-chrome - 如何通过命令行安装 crx Chrome 扩展?

javascript - 如何在点击时显示div?

javascript - 使用 javascript 显示许多相同单词的最简单方法

javascript - 尝试将旧的 React native 文件更新为 0.30

google-app-engine - 符合 Stack Exchange API 要求的 Google App Engine Cloud 基础设施上的限制实现

javascript - 我如何将向上/向下箭头键 "Map"到 Tab/Shift Tab?