Kann Javascript auf das DOM zugreifen, der einen Ajax-text/html-Antwort?
Ich versuche, die Ajax verwenden, zum abrufen einer HTML-Seite und ziehen Sie dann ein div, indem es die ID und einfügen, DIV in die aktuelle Seite. Also die aktuelle Seite geladen wird (per Ajax) eine zweite Seite, zieht den div aus der Ajax-Antwort und fügt in die aktuelle Seite. Aber ich bin an einem Verlust, es sei denn, die Antwort ist text/xml, ich kann keine DOM-Funktionen auf... kann ich?
Wenn Sie möchten, dass nur 1 Teil von der Seite, die Sie nicht brauchen, um verwenden Sie die dom. Sie können nur teilen Sie die Zeichenfolge.
InformationsquelleAutor Josh | 2009-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jquery (oder anderen Bibliotheken??) im Grunde tun alles für Sie. Ich empfehle in diesen suchen und nicht das Rad neu erfinden.
Für die Abfrage wäre es wahrscheinlich wie:
Vielleicht habe ich die syntax falsch. Aber hier ist die Doku: http://docs.jquery.com/Ajax/jQuery.ajax#options
Ich bin nicht sicher, mit Prototyp, aber in Jquery-das ist das, was $(returnData) tut. Es dauert auch immer returnData ist und ermöglicht es Ihnen, zu suchen/finden/etc, als ob es war Teil der Seite.
Zum Beispiel können Sie eine Zeichenfolge übergeben: var Ergebnis = $('<span><a href="link">Link</a></span>').find('a'); und das Ergebnis wäre das DOM-Objekt <a href="link">link</a>
Ich verstehe nicht, was ich falsch machte, bevor. Dies funktioniert genau wie von Ihnen beschrieben und was jQuery ist dabei ist die Schaffung einer
<div>
mitdocument.createElement
, NICHT das einfügen des div in die Seite einfügen den HTML-Code in den div 'sinnerHTML
, und den Zugriff auf die div' s childNodes. Ich schwöre, ich versuchte dies und es funktionierte nicht... aber ich muss falsch gewesen, weil ich gerade versucht und es funktioniert.api.jquery.com/load
InformationsquelleAutor jskulski
Ja, Sie können. Hier finden Sie eine Ressource für Sie, wie zu analysieren XML-Antworten.
Wenn Sie sind das laden in den DOM-Baum, der bereits vorhanden ist (
innerHTML
), sollten Sie in der Lage, um die standard-DOM-traversal-Funktionen, die Sie gewohnt sind.Sie kann aber, dass das erlöschen der DOM.
warum sind Sie das laden einer gesamten doc-Baum? nur Last-spezifische Teile. Sie haben bereits einen Baum mit dem html-tag; warum ein weiteres?
IV, das ist mein problem. Ich habe keinen Zugriff auf das backend, ich kann nur das schreiben von Javascript-code, und ich bin den Zugriff auf eine HTML-Seite via AJAX. Es ist eine komplette Seite und ich will einen Weg zum extrahieren einen bestimmten Teil aus der Ajax-response.
InformationsquelleAutor geowa4
Mach dir keine sorgen über Gültigkeit, da Sie dies dynamisch mit Hilfe von javascript, können Sie füllen hidden-element mit innerHTML deine Antwort-Daten, und verwenden Sie dann ein DOM/jQuery-Funktionen, die Sie wünschen
InformationsquelleAutor skrat
script-tags wird nicht auf jedem browser durch irgendeine Methode.. so Zugriff auf aktuelle Seite die dom gelten die "eval" - Funktion in der script-text, die Sie derzeit angefordert.
ich meine, wenn Sie html wie:
und Sie haben den Skript-text auf der server-Seite wie
Verwendung der eval-Funktion auf ajax-response
tja, wenn die andere Seite platziert, auf der gleichen domain, erstellen Sie einen iframe per javascript, als dessen src auf Ihrer Seite, hören iframe load-Ereignis, und Sie können direkt iframe-Inhalte
Dank Tolgahan ALBAYRAK... ich bis Ende Mai gehen, die route.
InformationsquelleAutor Tolgahan Albayrak
Um jQuery verwenden zu extrahieren, nur ein Teil eines HTML-Dokuments geladen werden über $.load() tun Sie dies:
.laden tatsächlich laden Sie das gesamte Dokument, aber die selector-force-laden, um nur den ausgewählten Teil des Dokuments.
InformationsquelleAutor betabennett
Ausprobieren. Dieser arbeitete für mich.
InformationsquelleAutor Vinit Kadkol
InformationsquelleAutor Alark sharma