目前,首先要学习为Firefox制作Webextensions的一些基础知识。

当用户选择了一些文本时,我试图向上下文菜单添加一个简单的选项。没什么,将选择输出到控制台按预期工作。但是,不是上下文菜单本身中的文本。

在为background.js输入以下代码时:

browser.contextMenus.create({
  id: "log-selection",
  title: "Log '%s' to the console",
  contexts: ["selection"]
});

browser.contextMenus.onClicked.addListener(function(info, tab) {
  if (info.menuItemId == "log-selection") {
    console.log(info.selectionText);
  }
});


https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenus/create中所述

它应该添加

"Log 'selected text bla' to the console"


作为上下文菜单(右键单击菜单)的选项。

但是,它显示为:

"Log 'selected text bla...' to the console"


(该MDN页面现已更新,以反映我的发现)

我已经尝试过通过从%s中减去3来截断,但是似乎字符串是在create函数的末尾求值的。例如。从%s截断3会给我

""


而不是期望的

selected text bla


如果需要的话,额外的信息-我的manifest.json:

{

  "manifest_version": 2,
  "name": "Selection Logger",
  "version": "1.0",

  "description": "Add selection to context menu to print with console",

  "background": {
    "scripts": [
      "background.js"
    ]
  },

  "permissions": [
    "contextMenus"
  ],

  "applications": {
    "gecko": {
      "id": "[email protected]"
    }
  }

}


关于如何摆脱椭圆/ 3点的任何想法?我也尝试创建内联函数,但是它对我也不起作用。

title: function(){ return "test"; },


没用,我敢肯定违反了一些JS规则。

对此新手的帮助表示赞赏!

最佳答案

不幸的是,您必须等待相关的Firefox bug被修复。或者,如果目前从事此工作的人员不能很快解决,请自己修复。

关于javascript - 使用'%s'引用所选文本时,如何摆脱省略号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45242706/

10-11 05:33