begin process at 2012 05 29 11:48:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

[IE] Trop de JS tue le JS ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[IE] Trop de JS tue le JS ?

lundi 30 novembre 2009 à 09:18:48 | [IE] Trop de JS tue le JS ?

xactise

Membre Club
Bonjour à tous,

J'ai un petit souci avec Internet Explorer (V8, donc pas tester les précédentes, je me doute que le résultat sera le même.)

J'ai une page qui est assez gourmande en JS du fait que je génère des tableau (ma fois complet) en DOM.

Mes fonctions me semble pourtant bien fait niquel.

Le soucis est que tous passe niquel sous FireFox, mais sous IE sa passe dison 1 fois sur 10. Ma page ne se charge pas complêtement, le plus étrange c'est que le chargement de la page s'arrête à différents endroit. et parfois ben sa passe au complet...

Très étrange, je tiens a signaler que le script s'arrête tous le temps après les appels a mes différentes fonction, et que ces dernière fonctionne très bien, c'est juste que sa ne se charge pas jusqu'au bout parfois un peu plus, parfois au complet...

Quelqu'un a une idée ?

D'avance merci


L0rD...
lundi 30 novembre 2009 à 09:39:46 | Re : [IE] Trop de JS tue le JS ?

Bul3

Membre Club
Bonjour,
bah.... sans le moindre ch'tiot bout de code,
difficile d'avancer une quelconque hypothèse
temps trop long... mais là, IE le dit.
pas de raisons, à priori, sauf erreurs dues
aux différences IE,Fx ?
debogage ?

Cordialement [mon Site] [M'écrire] Bul
lundi 30 novembre 2009 à 10:09:15 | Re : [IE] Trop de JS tue le JS ?

xactise

Membre Club
Yop merci pour ta réponse et ta rapidité,

Disons que j'ai pas mal de petite fonction pour généré du DOM

Du style :

Code Javascript :
function DOMaddTR(id){
		var tr = document.createElement("tr");
		tr.setAttribute("id", id);
		
		return tr;
	}

function DOMaddTD(id, classs, width, align, colspan, rowspan){
		var td = document.createElement("td");
		td.setAttribute("id", id);
		td.setAttribute("class", classs);
		td.setAttribute("width", width);
		td.setAttribute("align", align);
		td.setAttribute("colspan", colspan);
		td.setAttribute("rowspan", rowspan);
		
		return td;
	}
	
	function DOMaddINPUT(name, id, classs, readonly){
		var input = document.createElement("input");
		input.setAttribute("name", name);
		input.setAttribute("id", id);
		input.setAttribute("class", classs);
		if(readonly==true) input.setAttribute("readonly","readonly");
		
		return input;
	}



function getElementsByName2 (obj, name) {
	var elements = document.getElementsByName(name);
	var resultat = new Array();
	
	for (i=0; i<elements.length; i++) {
		if (isChildOf(elements[i], obj)) {
			resultat.push(elements[i]);
		}
	}
	
	return resultat;
	}
	function isChildOf (obj, parent) {
		var child = obj;
		while (typeof (child = child.parentNode) != "undefined" && child != null) {
			if (child == parent) {
				return true;
			}
		}
		return false;
	}

function check_formations()
{
	var count = getNAME("f_type_formation[]").length;
	for(var i=0;i<count;i++)
	{
		if(getNAME("f_vendeur[]")[i].value=="choisir")
		{
			alert("Veuillez sélectionner le vendeur de la formation");
			return false;
		}
	}
	return true;
}

etc....

et Une assez grande fonction

Code Javascript :
function DOMaddRow(type_formation,i, id_formation, vendeur, prix_formation, participant, cheque_virement_recu, paiement, date_facturation, date_paiement, date_formation, formateur, convention_signe, attestation_presence, formation_annule, modifier){


var id_formation = id_formation === undefined ? '' : id_formation;
		var vendeur = vendeur === undefined ? '' : vendeur;
		var prix_formation = prix_formation === undefined ? '' : prix_formation;
		var participant = participant === undefined ? '' : participant;
		var cheque_virement_recu = cheque_virement_recu === undefined ? '' : cheque_virement_recu;
		var paiement = paiement === undefined ? '' : paiement;
		var date_facturation = date_facturation === undefined ? '' : date_facturation;
		var date_paiement = date_paiement === undefined ? '' : date_paiement;
		var date_formation = date_formation === undefined ? '' : date_formation;
		var formateur = formateur === undefined ? '' : formateur;
		var convention_signe = convention_signe === undefined ? '' : convention_signe;
		var attestation_presence = attestation_presence === undefined ? '' : attestation_presence;
		var formation_annule = formation_annule === undefined ? '' : formation_annule;
		var modifier = modifier === undefined ? false : modifier;
		
		
		div = getID('listing_formation_'+type_formation);
		
		var tableau = document.createElement("table");
		tableau.setAttribute("id", type_formation+"_"+i);
		tableau.setAttribute("class", "table");
		tableau.setAttribute("cellpadding", "5");
		tableau.setAttribute("cellspacing", "0");
		
		
		var table = document.createElement("tbody");

var tr = DOMaddTR('');
		var td = DOMaddTD('','fond_menu gras centrer','','center','2','');
		var input = DOMaddINPUT("f_type_formation[]", "f_type_formation"+type_formation+"_"+i, "invisible_", false);
		input.setAttribute("value", type_formation);
		td.appendChild(input);
		var input = DOMaddINPUT("f_id_formation[]", "f_id_formation"+type_formation+"_"+i, "invisible_", false);
		input.setAttribute("value", id_formation);
		td.appendChild(input);
		td.innerHTML += 'Formation '+type_formation+' '+i;
		
		
		tr.appendChild(td);
		table.appendChild(tr);

tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Vendeur : ';
		td2 = DOMaddTD('','','','','1','');
		
		td2.innerHTML = "<?=liste_all("f_vendeur[]","",false);?>";

		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);

tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Prix : ';
		td2 = DOMaddTD('','','','','1','');
		input = DOMaddINPUT("f_prix[]","f_prix_"+type_formation+"_"+i,"input50",false);
		
			if(modifier==true)
				input.setAttribute('value',prix_formation);

			
		
		td2.appendChild(input);
		td2.innerHTML += " &euro";
		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);
		
		
		
		tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Participant : ';
		td2 = DOMaddTD('','','','','1','');
		input = DOMaddINPUT("f_participant[]","f_participant"+type_formation+"_"+i,"input50",false);
		
			if(modifier==true)
				input.setAttribute('value',participant);
		
			
		
		td2.appendChild(input);		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);
		
		
		tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Chèque / Virement reçu : ';
		td2 = DOMaddTD('','','','','1','');
		td2.innerHTML = '<select name="f_cheque_virement_recu[]" id="cheque_virement_recu_'+type_formation+'_'+i+'"><option value="" '+(cheque_virement_recu=='' ? 'selected="selected"' : '')+'>----</option><option value="Non" '+(cheque_virement_recu=='Non' ? 'selected="selected"' : '')+'>Non</option><option value="Oui" '+(cheque_virement_recu=='Oui' ? 'selected="selected"' : '')+'>Oui</option></select>';
		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);
		
		
		
		tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Paiement : ';
		td2 = DOMaddTD('','','','','1','');
		td2.innerHTML = '<select name="f_paiement[]" id="f_paiement_'+type_formation+'_'+i+'"><option value="" '+(paiement=='' ? 'selected="selected"' : '')+'>------</option><option value="Non" '+(paiement=='Non' ? 'selected="selected"' : '')+'>Non</option><option value="Oui" '+(paiement=='Oui' ? 'selected="selected"' : '')+'>Oui</option><option value="Offert" '+(paiement=='Offert' ? 'selected="selected"' : '')+'>Offert</option></select>';
		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);
		

		
		tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Date facturation : ';
		td2 = DOMaddTD('','','','','1','');
		input = DOMaddINPUT("f_date_facturation[]", "date_facturation_"+type_formation+"_"+i, "", false);

			if(modifier==true)
				input.setAttribute('value',date_facturation);

		td2.appendChild(input);
		td2.innerHTML += "<a href=\"javascript:maz('date_facturation_"+type_formation+"_"+i+"')\">remettre &agrave; z&eacute;ro</a>";
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);
		
		
		
		tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Date paiement : ';
		td2 = DOMaddTD('','','','','1','');
		input = DOMaddINPUT("f_date_paiement[]", "date_paiement_"+type_formation+"_"+i, "", false);

			if(modifier==true)
				input.setAttribute('value',date_paiement);

		td2.appendChild(input);
		td2.innerHTML += "<a href=\"javascript:maz('date_paiement_"+type_formation+"_"+i+"')\">remettre &agrave; z&eacute;ro</a>";
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);
		
		
		
		tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Date formation : ';
		td2 = DOMaddTD('','','','','1','');
		input = DOMaddINPUT("f_date_formation[]", "date_formation_"+type_formation+"_"+i, "", false);

			if(modifier==true)
				input.setAttribute('value',date_formation);

		td2.appendChild(input);
		td2.innerHTML += "<a href=\"javascript:maz('date_formation_"+type_formation+"_"+i+"')\">remettre &agrave; z&eacute;ro</a>";
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);

tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Formateur : ';
		td2 = DOMaddTD('','','','','1','');
		td2.innerHTML = "<?=liste_all("f_formateur[]","",false);?>";

		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);

tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Convention sign&eacute: : ';
		td2 = DOMaddTD('','','','','1','');
		td2.innerHTML = '<select name="f_convention_signe[]" id="convention_signe_'+type_formation+'_'+i+'"><option value="" '+(convention_signe=='' ? 'selected="selected"' : '')+'>----</option><option value="Non" '+(convention_signe=='Non' ? 'selected="selected"' : '')+'>Non</option><option value="Oui" '+(convention_signe=='Oui' ? 'selected="selected"' : '')+'>Oui</option></select>';
		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);
		
		
		
		tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Attestation de pr&eacute;sence : ';
		td2 = DOMaddTD('','','','','1','');
		td2.innerHTML = '<select name="f_attestation_presence[]" id="attestation_presence_'+type_formation+'_'+i+'"><option value="" '+(attestation_presence=='' ? 'selected="selected"' : '')+'>----</option><option value="Non" '+(attestation_presence=='Non' ? 'selected="selected"' : '')+'>Non</option><option value="Oui" '+(attestation_presence=='Oui' ? 'selected="selected"' : '')+'>Oui</option></select>';
		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);
		
		
		
		tr = DOMaddTR('');
		td = DOMaddTD('','gras','','','1','');
		td.innerHTML = 'Annul&eacute;e : ';
		td2 = DOMaddTD('','','','','1','');
		td2.innerHTML = '<select name="f_formation_annule[]" id="formation_annule_'+type_formation+'_'+i+'"><option value="" '+(formation_annule=='' ? 'selected="selected"' : '')+'>----</option><option value="Non" '+(formation_annule=='Non' ? 'selected="selected"' : '')+'>Non</option><option value="Oui" '+(formation_annule=='Oui' ? 'selected="selected"' : '')+'>Oui</option></select>';
		
		tr.appendChild(td);
		tr.appendChild(td2);
		table.appendChild(tr);

tableau.appendChild(table);
		div.appendChild(tableau);

getID('count_'+type_formation).innerHTML = i;

			if(modifier==true)
				if(prix_formation!='') getID('count_modif_'+type_formation).innerHTML = i;


		var nb_select = getElementsByName2(getID("listing_formation_"+type_formation),"f_vendeur[]")[parseInt(i)-1].length;
		for(var j=0;j<nb_select;j++)
		{
			if(getElementsByName2(getID("listing_formation_"+type_formation),"f_vendeur[]")[parseInt(i)-1].options[j].value==vendeur)
				getElementsByName2(getID("listing_formation_"+type_formation),"f_vendeur[]")[parseInt(i)-1].options[j].selected = true;
				
		}
		
		
		var nb_select = getElementsByName2(getID("listing_formation_"+type_formation),"f_formateur[]")[parseInt(i)-1].length;
		for(var j=0;j<nb_select;j++)
		{
			if(getElementsByName2(getID("listing_formation_"+type_formation),"f_formateur[]")[parseInt(i)-1].options[j].value==formateur)
				getElementsByName2(getID("listing_formation_"+type_formation),"f_formateur[]")[parseInt(i)-1].options[j].selected = true;
				
		}
}



Voila c'est assez long et lourd, je pense pas qu'il y est d'erreur comme je t'es dit car des moments la page ce charge en entier, et mes scripts fonctionnent bien...

D'avance merci

L0rD...
lundi 30 novembre 2009 à 10:30:10 | Re : [IE] Trop de JS tue le JS ?

Bul3

Membre Club

° déjà, je n'utilise "jamais" setAttribute
il y a des différences entre navigateurs
par exemple à
Code Javascript :
var tableau = document.createElement("table");
tableau.setAttribute("id", type_formation+"_"+i);
tableau.setAttribute("class", "table");
tableau.setAttribute("cellpadding", "5");
tableau.setAttribute("cellspacing", "0");
je préfère ( tout simplement )
Code Javascript :
var tableau = document.createElement("table");
tableau.id=type_formation+"_"+i;
tableau.className="table";
tableau.cellpadding="5";
tableau.cellspacing= "0";

° ensuite, innerHTML+= peut ralentir énormément
createElement + appendChild valent mieux (?)
comme vous utilisez déjà...
° pas sur que les fonctions getElementsByName2+ isChildOf
soient réellement nécessaires. si c'est uniquement
pour retrouver les éléments contenus dans un autre.
° pas tout regardé à fond

ça n'explique peut-être rien du tout ? mais
je tenterais déjà ça...
lundi 30 novembre 2009 à 15:30:23 | Re : [IE] Trop de JS tue le JS ?

Bul3

Membre Club
c'est vrai que j'ai oublié un piste, un exemple...
pour voir les "éléments contenus dans un autre"
si j'ai compris ce à quoi ça servait !
regardez élément.getElementsByTagName("*")
( et test du className si nécessaire )
si cela ne correspond pas, c'est parce que
je n'ai pas pigé, le but, mais ce doit être
aussi simple que ça, voire plus


Cette discussion est classée dans : page, ie, passe, js, complet


Répondre à ce message

Sujets en rapport avec ce message

Script qui fonctionne avec Mozilla et Google chrome mais pas avec IE !!! [ par Ronflette ] Bonjour a tous et merci a tous ceux qui répondront à ce poste.Voilà deux jours que je m'arrache les cheveux pour protéger l'accés d'un site web par un créer une page nommée "ftp" avec plusieurs logins et mots de passe [ par nthl ] bonjourJ'ai besoin de creer quelques pages pour un site, je n'y connais rien donc tatonne et tente de faire ce que je peux. j'ai acheté un espace sur Remplir un champ password sur une URL définie [ par PAPcorp2 ] Bonjour,J'ai besoin d'aide. Il me faut un script pour envoyer un mot de passe vers un champ qui est sur une page web dont je ne peux modifier la sou Souci avec HTTPRequest sous IE en SSL [ par karistote ] Hello tlm !J'ai un petit souci sur une page, qui se révèle bien embêtant, et apres des jours de recherche, je n'ai toujours rien...J'ai un champ avec Affichage incorrect IE [ par hocine2512 ] Bonjour,j'ai un soucis avec l'affichage d'une page elle s'affiche tres bien sous FF, SAFARI mais avec IE sa ressemble a rien quelqu'un peu maider ?la Lancer un PPS depuis une page HTML en dehors de IE [ par sgarro ] tout est dans le titre ...Clairement, j'ai une page HTML dans lequelle on retrouve une zone réactive qui, lorsque l'on clique dessus, doit lancer un P importation du fichier js et css par javascript [ par islamsaadally ] slt tous le monde , je travaille avec des pages jsp sur netbeans et  et j'ai du code javascript  pour une calendrier qui fait appel a une page d'exten Solution pour cacher un mot de passe d'accès d'une page [ par bojolais ] Bonjour,Je ne parviens pas à trouver un code qui me permettrait de cacher le mot de passe d'acces à une page.Pour accéder à une page j'ai créé un mot Probleme de compatibilté avec ie [ par scinzia ] Bonjour en m'inspirant du script suivant : script , permettant d'activer ou de désactiver une liste multiple , j'ai créé une page html a protéger une page par identification login et mot de passe [ par claireweb ] bonjour, je suis nouvelle. Bravo pour ce site qui propose des zip à télécharger, comme ça j'ai le code complet et pour une débutante c'est pratique.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales