如何在Firefox Add-on SDK中访问div?

时间:2014-06-27 09:43:57

标签: javascript firefox firefox-addon firefox-addon-sdk

我正在尝试访问右键单击的div并使用附加SDK记录其代码(从打开到结束标记)。

var contextMenu = require("sdk/context-menu");
 var menuItem = contextMenu.Item({
 label: "Log This Div",
 context: contextMenu.SelectorContext("div"),
 contentScript: 'self.on("click", function (e) {' + // e is empty
                '  if (!e) {e = window.event;}' + // window doesnt have event property
                '  console.log(e);' + // result is {}
                '  var text = e.target;' +
                '  self.postMessage(text);' +
                '});',
 onMessage: function (selectionText) {
      console.log(selectionText); // null
 }
});

1 个答案:

答案 0 :(得分:2)

click回调的第一个参数是the actual context node,而非事件。

要获取节点的外部标记,可以使用.outerHTML

var contextMenu = require("sdk/context-menu");
 var menuItem = contextMenu.Item({
 label: "Log This Div",
 context: contextMenu.SelectorContext("div"),
 contentScript: 'self.on("click", function (node, data) {' +
                '  self.postMessage(node.outerHTML);' +
                '});',
 onMessage: function (outerHTML) {
      console.log(outerHTML);
 }
});