schnelle Tipps für xmlhttprequest und Innerhtml
xmlhttprequest ist einer der besten Tipps für moderne DHTML. Wenn Sie es noch nie zuvor begegnet sind, ist dies eine Möglichkeit, HTTP -Anrufe an einen gehosteten Webserver auszustellen, ohne die gesamte Seite zu aktualisieren - ein erweitertes Remote -Skript. Es war ursprünglich eine Erweiterung von Microsoft und wurde von der Mozilla Browser -Serie und (beginnend mit Version 1.2) Safari übernommen. Die zuvor diskutierte Sarissa -Bibliothek bietet eine Abstraktionsschicht für verschiedene Browser oder für einen leichteren Ansatz dieser Code von Jibbering.com (der mit IEs Jscript Conditional kompiliert wird) perfekt.
Um das Beste aus XMLHTTPREquest herauszuholen, wird häufig die serverseitige XML verwendet, die Ihre JavaScript-Anwendung in komplexerer Logik abrufen, analysieren und verwenden kann. Für eine schnelle Lösung lädt der folgende Code jedoch das HTML -Snippet aus der URL und fügt ihn direkt in die Seite ein:
function loadFragmentInToElement(fragment_url, element_id) { var element = document.getElementById(element_id); element.innerHTML = '<p><em>Loading ...</em></p>'; xmlhttp.open("GET", fragment_url); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { element.innerHTML = xmlhttp.responseText; } } xmlhttp.send(null); }
Berechnung der obigen Funktion mit der URL des zu fixierten HTML -Fragments und der ID des Elements, die das Fragment anzeigen sollte. Es stützt sich auf den Code von Jibbering.com, um die XMLHTTP -Variable festzulegen.
Es ist absolut schnell und bescheiden, aber es ist auch eine großartige schnelle Demo der XMLHTTPrequest -Erweiterung.
xmlhttprequest und Innerhtml FAQ (FAQ)
Innerhtml und oterHtml sind beide Attribute von Elementen im DOM -DOCUM -Objektmodell (DOM). Der Hauptunterschied zwischen ihnen ist das, was sie zurückgeben und ändern. InnerHTML erhält oder legt den HTML -Inhalt (interner HTML) eines Elements ab, während OuterHTML den HTML -Inhalt abruft oder festlegt, einschließlich der externen Wrapper des Elements. Mit anderen Worten, Innerhtml behandelt den Inhalt in einem Element, während Outerhtml das gesamte Element, einschließlich der Tags, umgeht.
Während InnerHTML eine bequeme Möglichkeit ist, HTML in eine Webseite zu injizieren, kann es bei unsachgemäßer Verwendung Sicherheitsrisiken darstellen. Wenn Sie benutzergenerierte Inhalte in eine Seite einfügen und InnerHTML verwenden, können Sie Cross-Site-Skriptangriffe (XSS) antreten, bei denen böswillige Skripte in Ihre Webseite eingeleitet werden. Um dies zu vermeiden, reinigen Sie immer benutzergenerierte Inhalte oder verwenden Sie eine sicherere Methode wie TextContent oder CreateLement.
Sie können mehrere Elemente mit Innerhtml hinzufügen, indem Sie HTML -Zeichenfolgen für jedes Element verkettet. Wenn Sie beispielsweise zwei Absätze hinzufügen möchten, können Sie Folgendes ausführen:
element.innerhtml = '<code>element.innerHTML = '<p>第一段。</p>' '<p>第二段。</p>';
Erster Absatz.
Kann ich ein SVG -Element mit Innerhtml einfügen? Ja, Sie können SVG -Elemente mit Innerhtml einfügen. Es gibt jedoch einige Dinge zu beachten. Der SVG -Namespace ist bei der Verwendung von InnerHTML nicht erhalten, was in einigen Browsern Probleme verursachen kann. Wenn Sie Probleme haben, sollten Sie stattdessen die Methoden "CreateLementns" und "AppendChild" verwenden.
Ihre Innerhtml funktioniert möglicherweise nicht aus mehreren Gründen. Ein häufiger Grund ist, dass das Element, das Sie ändern möchten, nicht existiert, wenn das Skript ausgeführt wird. Dies kann passieren, wenn Ihr Skript vor dem Körper der Seite geladen wird. Um dieses Problem zu beheben, können Sie das Skript auf den Boden der Körperbezeichnung verschieben oder den Code in die Funktion "Fenster" einwickeln.
Nein, Innerhtml unterstützt keine XML -Dokumente. Es handelt sich um eine Eigenschaft der HTMLelement -Schnittstelle in HTML DOM und ist in XML DOM nicht verfügbar. Wenn Sie XML verwenden, müssen Sie stattdessen Methoden wie CreateLement und AppendChild verwenden.
Sie können alle untergeordneten Elemente eines Knotens löschen, indem Sie die Innerhtml -Eigenschaft auf eine leere Zeichenfolge einstellen. Zum Beispiel:
element.innerHTML = '';
Dadurch werden alle untergeordneten Elemente des Elements gelöscht.
Nein, Innerhtml kann nur mit Elementknoten verwendet werden. Wenn Sie Text in einen Textknoten einfügen möchten, sollten Sie stattdessen die Eigenschaft NodeValue oder TextContent verwenden.
Sie können Elemente durch Innerhtml ersetzen, indem Sie die Innerhtml -Eigenschaft des übergeordneten Elements festlegen. Dies ersetzt alle untergeordneten Elemente des übergeordneten Elements, einschließlich der, die Sie finden möchten. Zum Beispiel:
parentElement.innerhtml = '<code>parentElement.innerHTML = '<p>新段落。</p>';
Neuer Absatz.
Ja, Innerhtml wird in allen großen Browsern, einschließlich des Internet Explorer, unterstützt. Browser verarbeiten jedoch bestimmte Aspekte von Innerhtml unterschiedlich. Daher ist es am besten, Ihren Code in mehreren Browsern zu testen.
Das obige ist der detaillierte Inhalt vonSchneller Tipp: xmlhttprequest und innerhtml. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!