我正在尝试访问右键单击的 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/