Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Comment forcer 'XMLHttpRequest' à ignorer les caratères d'espacement ?

Envoyé par : Epeios

Date : 15/05/2006 11:45

Voici le code dont je me sers pour importer le contenu d'un fichier XUL dans un autre fichier XUL :

function importXULFile ( file )	// Retourne la racine de l'arbre XUL contenu dans 'file' comme noeud.
{
	var myXMLHTTPRequest = new XMLHttpRequest();
	myXMLHTTPRequest.open("GET", file, false);
	myXMLHTTPRequest.send(null);

	return document.importNode( myXMLHTTPRequest.responseXML.firstChild, true );
}
function test ()
{
	doc.getElementById( 'Query' ).appendChild( importXULFile( 'file://c:/test/test.xul' ) );
}

Voici le contenu du fichier 'test.xul' :

<?xml version="1.0" encoding="ISO-8859-1"?>
<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	<grid>
		<columns>
			<column flex="1"/>
			<column flex="1"/>
			<column flex="1"/>
		</columns>
		<rows>
			<row align="center">
				<hbox>
					<description value="AUTEUR"/>
					<button oncommand="alert('Essai');" label="test"/>
					<textbox id="pattern"/>
				</hbox>
			</row>
		</rows>
	</grid>
</vbox>

Le contenu de ce fichier est correct : si je le copie tel quel (sans la première ligne, cependant) en tant que fils de la balise d'id 'Query' dans le fichier XUL principal, j'obtiens bien ce que je veux (notamment, l'affichage d'une boîte de dialogue avec le texte 'Essai' lorsque je clique sur le bouton).

Cependant, lorsque j'importe le fichier en lançant la fonction 'test()' donnée ci-dessus, les différents éléments sont bien affichés, mais pas exactement de la même manière. Et surtout, cliquer sur le bouton n'affiche plus la boîte de dialogue !

A l'aide du 'DOM Inspector', j'ai constaté que le problème venait du fait que les caractères d'indentation contenus dans le fichier 'test.xul' étaient considérés comme des données, et n'étaient donc pas filtrés comme ils le devraient. Cela est confirmé par le fait que, si je supprime tous les sauts de lignes et toutes les tabulations du fichier 'test.xul', c'est-à-dire que je mets sont contenu sur une seule et même ligne en collant toutes les balises les unes aux autres, alors son contenu est affiché correctement et le bouton réagit également correctement.

Existe-t'il un moyen d'éviter que 'XMLHttpRequest' ne considère les caractères d'espacement comme des données ?

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.