代码之家  ›  专栏  ›  技术社区  ›  esnadr

通过自定义firefoxMenuItem获取链接的源url

  •  1
  • esnadr  · 技术社区  · 11 年前

    我尝试过:

    • 将菜单项添加到mozilla firefox菜单,
    • 只有当用户点击链接时,
    • 如果用户单击menuItem,则源url将在控制台中被窃取。

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

     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插件:null

    3 回复  |  直到 11 年前
        1
  •  2
  •   Noitidart    11 年前

    更改:

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

    context: contextMenu.URLContext("*"),
    
        2
  •  2
  •   tortway    9 年前

    对我来说很好:

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

    你试过[href]了吗?如果不是,则在contentScript中将其更改为:

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

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