通过自定义firefox MenuItem获取链接的源URL

时间:2014-02-24 22:05:15

标签: firefox firefox-addon contextmenu menuitem firefox-addon-sdk

我试过:

  • 将菜单项添加到mozilla firefox菜单
  • 仅当用户点击链接时才会显示
  • 如果用户点击menuItem,源网址将在控制台中被挖掘。

这是我的代码,根本无法显示菜单项:

 var contextMenu = require("sdk/context-menu");
 var menuItem = contextMenu.Item({
                              label         : "Show the url",
                              context       : contextMenu.SelectorContext("a[href]"), 
                              contentScript : 'self.on("click", function (node , data) {' + '  self.postMessage(node.src);' +'});',
                              onMessage: function (url) { console.log(url);}
                             });

我有以下日志:

  

console.log:rd-addon:null

3 个答案:

答案 0 :(得分:2)

变化:

context       : contextMenu.SelectorContext("a[href]"), 

context: contextMenu.URLContext("*"),

答案 1 :(得分:2)

对我有好处:

context: [cm.URLContext("*"), cm.SelectorContext("a[href], img")],
contentScript: 'self.on("click", function (node, data) {' +
    '  self.postMessage(node.href||node.src);' +
    '});',

答案 2 :(得分:0)

你尝试过[href]吗?如果没有,那么在contentScript中将其更改为:

contentScript : 'self.on("click", function (node , data) { if (node.nodeName != "A") { return false } ' + ' self.postMessage(node.src);' +'});',

尝试如果它不起作用,请告诉我。我更喜欢的解决方案是非sdk,我可以与你分享