Javascript: onclick / onsubmit for dynamically created button

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

7
задан Christian 15 August 2011 в 14:34
поделиться