2008-09-02 8 views

Antwort

2

Da ich noch nie selbst einen entwickelt habe, bin ich mir nicht sicher, wie das normalerweise in Firefox-Plugins funktioniert, aber da Plugin-Scripting JavaScript ist, kann ich wahrscheinlich beim Laden helfen. Unter der Annahme einer Variablen mit dem Namen URL mit der URL Sie anfragen möchten:

var xmlhttp = new XMLHttpRequest(); 
xmlhttp.open("GET", url, true); 

xmlhttp.onreadystatechange = function() { 
    if(this.readyState == 4) { // Done loading? 
     if(this.status == 200) { // Everything okay? 
      // read content from this.responseXML or this.responseText 
     } else { // Error occurred; handle it 
      alert("Error " + this.status + ":\n" + this.statusText); 
     } 
    } 
}; 

xmlhttp.send(null); 

Ein paar Hinweise zu diesem Code:

  • Sie sollten anspruchsvollere Statuscode Handhabung. Zum Beispiel ist 200 nicht der einzige Nicht-Fehler-Statuscode. Details zu Statuscodes finden Sie unter here.
  • Sie möchten wahrscheinlich eine Zeitüberschreitung haben, um den Fall zu behandeln, in dem Sie aus irgendeinem Grund nicht in einer angemessenen Zeit zu readyState 4 gelangen.
  • Sie möchten Dinge tun, wenn frühere readyStates empfangen werden. This page dokumentiert die readyState-Codes zusammen mit anderen Eigenschaften und Methoden des XMLHttpRequest-Objekts, die Sie möglicherweise nützlich finden.
0

Robert Walker hat einen großen Job der Beschreibung how to send the request. Sie können mehr über Mozilla's xmlhttprequest here lesen.

ich nur noch hinzufügen würde, dass die Antwort (mit Robert-Code) mit

xmlhttp.responseText 

gefunden würde (Bearbeiten - ich nicht genau genug habe gelesen, dank Robert)

Sie haben nicht genau angegeben, um welche Daten es sich handelt, obwohl Sie erwähnt haben, dass Sie Links von den Daten analysieren möchten. Sie könnten den xmlhttp.responseText als XML-Dokument verwenden, die Links analysieren und in einen Menulisten oder was auch immer Sie möchten einfügen.

+0

Eigentlich, da die onreadystate Funktion schrieb ich das XMLHttpRequest Objekt als seinen Kontext, würden Sie this.responseText oder this.responseXML, wie ich im Kommentar im Code angegeben. –