Maison >interface Web >js tutoriel >Astuce rapide: xmlhttprequest et innerhtml
Conseils rapides pour xmlhttprequest et innerhtml
xmlhttprequest est l'un des meilleurs conseils pour le DHTML moderne. Si vous ne l'avez jamais rencontré auparavant, c'est un moyen d'émettre des appels HTTP vers un serveur Web hébergé sans rafraîchir la page entière - un script distant amélioré. Il s'agissait à l'origine d'une extension de Microsoft et a été adopté par la série Mozilla Browser et (en commençant par la version 1.2) Safari. La bibliothèque Sarissa discutée précédemment fournit une couche d'abstraction pour différents navigateurs, ou pour une approche plus légère, ce code de Jibbering.com (qui est compilé en utilisant JScript conditionnel d'IE) fonctionne parfaitement.
Tirer le meilleur parti de XMLHTTPRequest implique souvent d'utiliser XML généré par le serveur que votre application JavaScript peut récupérer, analyser et utiliser dans une logique plus complexe. Cependant, pour une solution rapide, le code suivant chargera l'extrait HTML de l'URL et l'inservera directement dans la page:
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); }
Calcul de la fonction ci-dessus à l'aide de l'URL du fragment HTML à insérer et de l'ID de l'élément qui devrait afficher le fragment. Il s'appuie sur le code jibbering.com pour définir la variable XMLHTTP.
C'est absolument rapide et humble, mais c'est aussi une excellente démo rapide de l'extension XMLHTTPREQUEST.
xmlhttprequest et innerhtml FAQ (FAQ)
innerhtml et outerhtml sont tous deux des attributs d'éléments dans le modèle d'objet de document (DOM). La principale différence entre eux est ce qu'ils renvoient et modifient. InnerHTML obtient ou définit le contenu HTML (HTML interne) d'un élément, tandis que OUTERHTML obtient ou définit le contenu HTML, y compris l'emballage externe de l'élément. En d'autres termes, InnerHTML gère le contenu à l'intérieur d'un élément, tandis que OUTERHTML gère l'élément entier, y compris les balises.
Bien qu'innerHTML soit un moyen pratique d'injecter du HTML dans une page Web, il peut poser des risques de sécurité s'ils sont utilisés mal. Si vous insérez du contenu généré par l'utilisateur dans une page et utilisez InnerHTML, vous pouvez faire face à des attaques de scripts croisés (XSS) où les scripts malveillants sont injectés dans votre page Web. Pour éviter cela, nettoyez toujours le contenu généré par l'utilisateur ou utilisez une méthode plus sûre telle que TextContent ou CreateElement.
Vous pouvez ajouter plusieurs éléments en utilisant InnerHTML en concaténant les chaînes HTML pour chaque élément. Par exemple, si vous souhaitez ajouter deux paragraphes, vous pouvez effectuer ce qui suit:
élément.innerhtml = '<code>element.innerHTML = '<p>第一段。</p>' '<p>第二段。</p>';
Premier paragraphe.
Puis-je insérer un élément SVG en utilisant InnerHTML? Oui, vous pouvez insérer des éléments SVG en utilisant InnerHTML. Cependant, il y a certaines choses à noter. L'espace de noms SVG n'est pas conservé lors de l'utilisation de InnerHTML, ce qui peut causer des problèmes dans certains navigateurs. Si vous avez des problèmes, envisagez d'utiliser plutôt les méthodes CreateElementNS et APPENDCHILD.
Votre innerhtml peut ne pas fonctionner pour plusieurs raisons. Une raison courante est que l'élément que vous essayez de modifier n'existe pas lorsque le script est en cours d'exécution. Cela peut se produire si votre script est chargé avant le corps de la page. Pour résoudre ce problème, vous pouvez déplacer le script vers le bas de l'étiquette corporelle ou envelopper le code dans la fonction Window.
Non, InnerHTML ne prend pas en charge les documents XML. Il s'agit d'une propriété de l'interface HTMLelement dans HTML DOM et n'est pas disponible dans XML DOM. Si vous utilisez XML, vous devez plutôt utiliser des méthodes comme CreateElement et APPEDCHILD.
Vous pouvez supprimer tous les éléments enfants d'un nœud en définissant la propriété innerHTML sur une chaîne vide. Par exemple:
element.innerHTML = '';
Cela supprimera tous les éléments enfants de l'élément.
Non, InnerHTML ne peut être utilisé qu'avec des nœuds d'élément. Si vous souhaitez insérer du texte dans un nœud de texte, vous devez utiliser la propriété NodeValue ou TextContent à la place.
Vous pouvez remplacer les éléments par innerhtml en définissant la propriété innerHTML de l'élément parent. Cela remplacera tous les éléments enfants de l'élément parent, y compris celui que vous souhaitez localiser. Par exemple:
parentement.innerhtml = '<code>parentElement.innerHTML = '<p>新段落。</p>';
nouveau paragraphe.
Oui, InnerHTML est pris en charge dans tous les principaux navigateurs, y compris Internet Explorer. Cependant, les navigateurs gèrent certains aspects de l'InnerHTML différemment, il est donc préférable de tester votre code dans plusieurs navigateurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!