11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir voila je vient demander de l'aide je vous explique mon souci

pour mon site jai cree un system de news trés simple
quand une personne et logger sur le site elle a la posibilite d'ajouter les news quelle a selection dans ses favories jai donc cree un petite fonction JS et jutilise AJAX aussi pour ne pas à avoir à changer de page mon souci et que SOUS FF tous est nikel mais sous IE Bordel Bordel je ne comprend pas pk

SOUS FF :
http://www.buzteam.fr/FF.jpg

SOUS IE :
http://www.buzteam.fr/IE.jpg

LE CODE :

function getXhr(){
                                var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
                                return xhr
			}
			
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/

			function go(ItemID){
				var xhr = getXhr()
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
									test=document.getElementById(ItemID);
									nouveaudiv=document.createElement("div");
									nouveaudiv.style.backgroundColor = '#ffffff';
									nouveaudiv.style.border = '2px solid #333333';
									nouveaudiv.style.width = '264px';
									nouveaudiv.style.height = '137px';
									nouveaudiv.style.position = 'absolute';
									nouveaudiv.style.left = '635px';
									nouveaudiv.id = 'messagefav';
									test.appendChild(nouveaudiv);
									
									test1='<div style="background:url(../images/divers/BarBg.gif) center; padding:3px; color:#FFFFFF; font-weight:bold;">Favorie</div>'
									+ xhr.responseText
									+ '<div class="rester float"><a href="#" onclick="ProdAlertValidate(true); return false;"><img src="../images/divers/rester.gif" /></a></div>'
									+ '<div class="quitter float"><a href="#" onclick="ProdAlertValidate(false); return false;"><img src="../images/divers/quitter.gif" /></a></div>'
									+ '<div class="clear"></div>';
									
									nouveaudiv.innerHTML = test1;
					}
				}
				xhr.open("GET","ajax.php?idNews=" + ItemID,true);
				xhr.send(null);
			}


Esque Quelqun peut m'aider ??
Merci
Modifié par Viva (15 Jun 2007 - 13:00)
.... salut !!

a écrit :

viva a écrit
Personne pour m'aider ? je suis Criste


Ben c'est la nuit aussi Smiley cligne

j'suis pas un pro des modifs DOM html mais cette page pourrait d'aider concernant un 'bug' IE lors de modification de la structure de bloc (enfant|parent) et l'utilisation de la méthode "appendchild" ... en espérant ne pas mal t'orienter
Smiley lol
Modifié par kzone (15 Jun 2007 - 02:33)
Merci pour ton aide mais je n'est toujours pas résolu mon souci je ne comprend pas l'erreur mon CODE JS et dans un fichier à part donc ....

si quelqu'un à une solus je suis toujours la !!
essay de mettre un elert sur ta reponseText dans ta deuxiéme methode pour voir si elle n'est pas vide
et un conseil mieux vaut crée l'arbre test1 element par element que de tout balacencer en innerHTML
Modifié par hakkou (15 Jun 2007 - 09:41)
re ...,

un autre chose à vérifier est l'ajout d'attributs ou propriétés "mapping" (tel onclick ) à certaine balise Html ( IE6 et <) . Ces attributs ne peuvent pas être écrit ou lu il me semble.

il faut passer par les propriétés comme "définit" par le DOM niveau 0

balise.onclick; 
// au lieu de ...
balise.getAttribute('click');


voir en cela l'ecellent tuto La gestion des événements en JavaScript.
D'accord merci à vous deux je vais tester tous ca et je vous tien au courant encore merci !
lol c'est bon j'ai trouvé mon erreur tous est nikel

Correction :

function getXhr(){
                                var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
                                return xhr
			}
			
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/

			function go(ItemID){
				var xhr = getXhr()
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
									var test=document.getElementById(ItemID);
									var nouveaudiv=document.createElement("div");
									nouveaudiv.style.backgroundColor = '#ffffff';
									nouveaudiv.style.border = '2px solid #333333';
									nouveaudiv.style.width = '264px';
									nouveaudiv.style.height = '137px';
									nouveaudiv.style.position = 'absolute';
									nouveaudiv.style.left = '635px';
									nouveaudiv.id = 'messagefav';
									
									var test1='<div style="background:url(../images/divers/BarBg.gif) center; padding:3px; color:#FFFFFF; font-weight:bold;">Favorie</div>'
									+ xhr.responseText
									+ '<div class="rester float"><a href="#" onclick="ProdAlertValidate(true); return false;"><img src="../images/divers/rester.gif" /></a></div>'
									+ '<div class="quitter float"><a href="#" onclick="ProdAlertValidate(false); return false;"><img src="../images/divers/quitter.gif" /></a></div>'
									+ '<div class="clear"></div>';
									
									nouveaudiv.innerHTML = test1;
									
									test.appendChild(nouveaudiv);
									
					}
				}
				xhr.open("GET","ajax.php?idNews=" + ItemID,true);
				xhr.send(null);
			}


test.appendChild(nouveaudiv); doit figurer en dernier ^^ merci à tous