#javascript #firefox #firefox-addon #firefox-addon-sdk
#javascript #firefox #firefox-аддон #firefox-addon-sdk
Вопрос:
Я пытаюсь получить доступ div
к тому, что было щелкнуто правой кнопкой мыши, и зарегистрировать его код (от открывающего до закрывающего тега) с помощью Add-on 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:
Первым аргументом click
обратного вызова является фактический контекст 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);
}
});