Pbs code javascript

WRInaute discret
bonjour

j'ai un code en ajax qui s'execute sur le navigateur internet explorer ,mais qu'il ne s'execute pas sur les autres navigateurs(opera, firefox),sachant que l'option javascript est activé dans ces navigateurs


bye
 
WRInaute discret
YoyoS a dit:
utilise jQuery ou prototype par exemple. Si tu sais pas ce que c'est, je te laisse googler ;)

et pourquoi IE execute le code js mais les autres non

est ce que je dois telecharger les framworks jquery pour faire l'interactione entre js et html?
 
WRInaute accro
Oui nan mais cette compatibilité IE, ce que je veux te faire comprendre, c'est qu'elle est sûrement dû à une utilisation de certaines fonctions et méthodes que ne supportent pas les autres navigateurs. Mais sans le code, ca va être dur de t'aider...

Il a quelle tête ton appel AJAX ?

Avant d'utiliser prototype mes fonctions AJAX étaient basé sur le modèle suivant :

Code:
function ajax_get_query(folder)
{
	var xhr_object = null; 	 
	if(window.XMLHttpRequest) // Firefox 
		xhr_object = new XMLHttpRequest(); 
	else if(window.ActiveXObject) // Internet Explorer 
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
	else { // XMLHttpRequest non supporté par le navigateur 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	return; 
	}  
	
	xhr_object.open("GET", "getfolder.php?folder="+folder, false); 

	xhr_object.send(null); 
	
	if	(xhr_object.readyState == 4)
	{
		document.getElementById("folder_img").innerHTML = xhr_object.responseText;			
	}
}

Et ca marche nickel sur IE6, 7, FF, etc.

Ceci dit en utilisant prototype ces tests sont intégrés à l'appel de l'objet Ajax, ce qui permet d'avoir un code plus lisible (et surtout de garantir une meilleure compatibilité).
 
WRInaute discret
UsagiYojimbo a dit:
Oui nan mais cette compatibilité IE, ce que je veux te faire comprendre, c'est qu'elle est sûrement dû à une utilisation de certaines fonctions et méthodes que ne supportent pas les autres navigateurs. Mais sans le code, ca va être dur de t'aider...

bien voila un exemple de code que s'execute sur IE et non sur les autres

function affichage(eltAafficher, eltAcacher)
{
var eltAfficher = document.getElementById(eltAafficher);
eltAfficher.style.display = "block";
var eltcacher = document.getElementById(eltAcacher);
eltcacher.style.display = "none";
}

ce code premet de rendre visible un bloc de div et des masquer les autres au clic sur un lien
 
WRInaute accro
Pour débugger sur Firefox, tu peux installer la Web Developper Bar, qui te permettra sans doute d'avoir un meilleur retour sur les erreurs JS de ta page. Mais déjà ce que tu donnes là, c'est du bête javascript, pas de l'Ajax.
 
WRInaute discret
UsagiYojimbo a dit:
Pour débugger sur Firefox, tu peux installer la Web Developper Bar, qui te permettra sans doute d'avoir un meilleur retour sur les erreurs JS de ta page. Mais déjà ce que tu donnes là, c'est du bête javascript, pas de l'Ajax.
oui je sais que ca c'est de javascript
et non d'ajax mais j'ai donner un code en javascript qui ne s'execute pas sur les autres navigateurs sauf sur IE
 
WRInaute accro
Et quand tu testes cette fonction sur Firefox, tu as regardé dans la console d'erreur javascript ce qui était noté ?
 
WRInaute accro
Je n'ai pas IE, juste FF ou Safari (je suis sur Mac).

A priori le souci vient de ta fonction govol, et de cette partie là :

Code:
sel = document.getElementById('depar');
dept = sel.options[sel.selectedIndex].value;

Tu es sur que tu as un élément de type liste qui a comme id depar ? Parce que je ne l'ai pas trouvé sur ta page :

Code:
select name='depar' class="volnormal" id='select' onchange='govol()'>

A ta place je remplacerait id='select' par id='depar'.
 
Discussions similaires
Haut