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

标签 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
 }
});

最佳答案

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

关于javascript - 如何在 Firefox Add-on SDK 中访问 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24448763/

相关文章:

canvas - 我可以从页内 JavaScript 访问 Firefox 插件元素吗?

javascript - AngularJS:在模型和 View 之间异步收集附加数据

javascript - 是否可以覆盖控制台日志

javascript - 当宽度 < XXX 像素时禁用图例 charts.js

javascript - 如何仅在特定事件后加载服务器变量?

javascript - Firefox 扩展程序如何检测用户何时使用搜索栏进行搜索?

javascript - 如何在 iMacros 中保存网页图像?

javascript - 无法让 JavaScript 代码在 Firefox 上运行

html - 至少与浏览器 IE 和 Firefox 不兼容

Firefox 插件中的 Javascript : Delay in for loop