Jeg oppretter dynamisk en knapp slik jeg fant på Internett:
Page = function(...) {
...
};
Page.prototype = {
...
addButton : function() {
var b = content.document.createElement('button');
b.onclick = function() { alert('OnClick'); }
},
...
};
Dessverre fungerer den ikke og kaster følgende feil:
Error: [Exception... "Component is not available" nsresult: "0x80040111
(NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: chrome://knowledgizer/content
/knowledgizer.js :: <TOP_LEVEL> :: line 137" data: no]
Source File: chrome://browser/content/tabbrowser.xml Line: 434
Løsningen med setAttribute-arbeid:
b.setAttribute("onClick", "alert('OnClick')");
Imidlertid vil jeg kalle en klassemetode (i stedet for alarm), og b.onclick-syntaksen ser bedre ut i den forbindelse, håper / tenker jeg. er dette onclick-saken alvorlig? For hvis jeg skriver
b.onClick = function() {alert("OnClick");} // notice the spelling onclick vs onClick
får jeg ikke feilen ovenfor, men den fungerer fortsatt ikke, dvs. jeg får ikke varselet. Jeg er takknemlig for noen tips.
Som et bonusspørsmål: Hvordan kan jeg unngå at den gjeldende siden lastes inn på nytt når du klikker på knappen? Jeg liker bare å kalle en metode og ikke å forårsake en sideoppdatering.
Takk og hilsen,
Christian