У меня есть аддон с кнопкой, которая открывает панель с парой кнопок. При нажатии кнопки должен измениться параметр keyword.URL
, но это не так.
Вот main.js:
data = require("self").data
var panel = require("panel").Panel({
height: 135,
width: 260,
contentURL: data.url("popup.html"),
contentScriptFile: data.url("clicklisten.js"),
onMessage: function(contentScriptMessage) {
require("preferences-service").set('keyword.URL', contentScriptMessage);
}
//I think the problem is right there, but i have no idea why.
});
var button = require("widget").Widget({
id: "search-engine-button",
label: "Set search engine",
contentURL: data.url("Refresh.ico"),
panel: panel
});
Вот пример HTML-кнопок:
<button class="searchButton" id="addons" _keywordURL="https://addons.mozilla.org/en-US/firefox/search/?q=">Add-ons</button>
А это clicklisten.js (контент-скрипт):
// Add event listener
var buttons = document.getElementByClassName("searchButton");
for (var i = 0; i < buttons.length; i++)
buttons[i].addEventListener("click", changekeywordurl, false);
// Send a message to the extension if a button is clicked
function changekeywordurl(event)
{
var button = event.target;
self.postMessage(button.getAttribute("_keywordURL"));
}
Я чувствую, что перепробовал все, что мог придумать, но не могу заставить это работать.