11488 sujets

JavaScript, DOM et API Web HTML5

Bonjour a tous, je faisais partie jusqu'a aujourd'hui de la masse des visiteurs muet de ce forum et de quelques autres, ayant toujours trouvé a travers les problemes des autres et leur resolution les reponses a mes questions. Alors tout d'abord merci a tous pour m'avoir tant aidé sans le savoir ... Smiley cligne

Si je poste aujourd'hui c'est parce que je ne trouve pas de solution au probleme suivant :
je suis plutôt debutant et autodidacte, et je m'attaque en ce moment au developpement de mes premieres pages AJAX.

j'ai 1 page (index.php) dont je fais evoluer le contenu avec des requetes AJAX.

Il semblerait que les script javascript placés dans des balises crées dynamiquement de cette maniere ne s'executent pas sous IE6 et IE7. Sous IE8, FireFox, Opera, Chrome et Safari, tout roule.

voici quelques morceau choisis de mon code :
page principale :

<h3>|<a onClick="crossFadeTo('inviteConnexion');" >Connexion</a>||</h3>
<div id="content" style="width:100%;">
</div>


c'est le contenu de la div "content" qui evolu

le fichier xml qui contient les elements a afficher dynamiquement :

<root>

	<accueil>
		<h2>Page d'accueil ...</h2>
	</accueil>
	
	<fiches>
		<h2>Les fiches ...</h2>
	</fiches>
	
	<mailing>
		<h2>Mailing</h2>
	</mailing>
	
	<connexion>
		<inviteConnexion>
			<form name='form1' method='post' action='' onsubmit='alert("test");'>
				<input type='text' name='login' value='' />
				<input type='text' name='pass' value='' />
				<input type='submit' name='btn_connexion' value='connexion'/>
			</form>
		</inviteConnexion>
	</connexion>
    	
</root>


j'utilise les 2 fonctions suivantes pour integrer le contenu du fichier xml a l'abre DOM de la page courante .
'xmlDoc' est le responseXML de ma requete AJAX, et 'page' est le nom de la balise qui delimite la portion du fichier xml a integrer.

function loadContent(xmlDoc, page)
{
	var allNodes = clean(xmlDoc.documentElement.getElementsByTagName(page).item(0));
	var balises = new Array();
	var i=0;
	for (i=0;i<allNodes.childNodes.length;i++)
	{
		balises[i] = appendMyChildren(allNodes.childNodes[i]);
		document.getElementById('content').appendChild(balises[i]);
	}
	fadeIn(10,'content');
}

function appendMyChildren(currentNode)
{
	if(currentNode.nodeType == 1)
	{
		var newNode = document.createElement(currentNode.tagName);
	}
	if(currentNode.nodeType == 3)
	{
		var newNode = document.createTextNode(currentNode.nodeValue);
	}
	var i=0;
	for(i=0;i<currentNode.childNodes.length;i++)
	{
		var newChild = appendMyChildren(currentNode.childNodes[i]);
		newNode.appendChild(newChild);
	}
	var j=0;
	if(currentNode.nodeType == 1)
	{	
		for(j=0;j<currentNode.attributes.length;j++)
		{
			var newAttribNode = document.createAttribute(currentNode.attributes[j].nodeName);
			newAttribNode.nodeValue = currentNode.attributes[j].nodeValue;
			newNode.setAttributeNode(newAttribNode);
		}
	}
		
	return newNode;
}



le script alert('test') ne s'execute pas, quelqu'un aurait une idée ?
Merci d'avance.[/i][/i][/i][/i]
Modifié par dom18fr (27 Aug 2010 - 18:30)