Partage
  • Partager sur Facebook
  • Partager sur Twitter

Javascript, balise <script>, defer et IE !

Sujet résolu
    20 décembre 2010 à 11:09:02

    Bonjour à tous, ami(e)(s) lecteur(s) !

    Si je viens vers vous aujourd'hui, c'est pour exposer un problème que je n'arrive pas à comprendre...

    Je développe un appli J2EE, avec côté client, des pages JSF.

    J'ai quelques balises <script language="Javascript">...</script> qui me permettent de réaliser quelques traitement.

    Tout fonctionne sans soucis avec Firefox. Mais sous IE (6, 7 et 8), j'ai un problème. Il n'y a aucune de mes fonctions qui fonctionnent et j'ai le droit au script error d'IE : Objet attendu.

    Après avoir regarder le code source de la page, je me suis rendu compte qu'IE avait rajouter le tag defer dans toutes les balises scripts de la page.

    Quelques recherche plus tard, j'apprends que ce tag "defer" permet d'exécuter le JS après que la page soit charger... Du coup, c'est normal que rien ne fonctionne car l'import des librairies JSF et Richfaces, se fait à l'aide des balises script (exemple: <script defer type="text/javascript">window.RICH_FACES_EXTENDED_SKINNING_ON=true;</script>)

    Il faut que ces import se fassent au chargement de la page, et pas après.

    Bref, il me faut une solution pour qu'IE ne rajoute pas le tag "defer" dans mes balises <script>... Pourquoi ce tag "defer" s'insère sournoisement dans mes balises script ? Il doit bien avoir une explication et une solution, merci de m'éclairer avec vos lumière !

    Je précise tout de même que j'ai déjà utilisé ses technos là pour développer des applis, et je n'ai jamais eu ce problème auparavant :-/
    • Partager sur Facebook
    • Partager sur Twitter
      20 décembre 2010 à 11:16:42

      AMHA, le problème ne vient pas des "defer". S'il dit Objet Attendu, il faudrait connaître la ligne incriminée.
      • Partager sur Facebook
      • Partager sur Twitter
        20 décembre 2010 à 11:28:26

        La ligne incriminée en question est celle-ci (d'après IE) :

        <script defer  language="Javascript">
        	chargerCookie();
        </script>
        


        Mais ce qui me parait bizarre, c'est que la seule différence entre le code interprété par IE et Firefox, c'est ce tag "defer" présent dans tout les balises <script< de la page.

        Mais je te l'accorde, je fais peut être fausse route ;)
        • Partager sur Facebook
        • Partager sur Twitter
          20 décembre 2010 à 11:48:34

          Hm... ça aide pas ça. :euh:

          On peut voir la page online ?
          • Partager sur Facebook
          • Partager sur Twitter
            20 décembre 2010 à 11:57:40

            La page online, malheureusement non, ce n'est pas possible.

            Par contre, ce que je peux fournir, c'est la JSF, et les interprétation de FF et IE.

            Voici la page JSF :

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <f:view xmlns="http://www.w3.org/1999/xhtml"
            	xmlns:ui="http://java.sun.com/jsf/facelets"
            	xmlns:h="http://java.sun.com/jsf/html"
            	xmlns:t="http://myfaces.apache.org/tomahawk"
            	xmlns:f="http://java.sun.com/jsf/core"
            	xmlns:vh="http://rcfaces.org/html" xmlns:v="http://rcfaces.org/core"
            	xmlns:a4j="http://richfaces.org/a4j"
            	xmlns:rich="http://richfaces.org/rich" 
            	contentType="text/html">	
            	
            	<ui:composition template="webCallBase.xhtml">
            		<ui:define name="contenu">
            			<div id="content" class="content">
            				<h:form id="formToCall" prependId="false">
            					<div id="formulaireAppel" class="formulaireAppel">
            						<h:outputLabel id="titreFormulaire" styleClass="titreFormulaire" value="#{bundle.titreBoutique}" />
            						<br /><br /><br />
            						
            						<h:outputLabel id="texteRappelImmediat" value="#{bundle.texteRappelImmediat}" />
            						<br /><br />
            						<h:inputText id="inputNumAppele" styleClass="inputForm" value="#{webCallBean.numToForm}" validator="#{webCallBean.validateNumero}" required="true" requiredMessage="#{bundle.numAbsent}" />
            						<br />
            						<h:message for="inputNumAppele" styleClass="validator" />
            						
            						<br /><br /><br />
            						
            						<h:outputLabel id="texteNumero" value="#{bundle.texteNumero}" />
            						<br /><br />
            						<h:inputText id="inputNumAppelant" styleClass="inputForm" value="#{webCallBean.numFromForm}" validator="#{webCallBean.validateNumero}" required="true" requiredMessage="#{bundle.numAbsent}" />
            						<br />
            						<h:message for="inputNumAppelant" styleClass="validator" />
            						
            						<br /><br /><br />
            						
            						<h:selectBooleanCheckbox id="afficheNum" value="#{webCallBean.showNum}" />
            						<h:outputLabel for="afficheNum" styleClass="outputAfficheNum" value="#{bundle.texteAfficheNumero}" />
            						
            						<br /><br />
            						
            						<div id="boutonOk" class="boutonOk">
            							<h:commandButton id="lancementAppel" style="border=0" value="ok" image="/img/btn_valider.png" action="#{webCallBean.preparationAppel}" onclick="sauvegarderCookie();showWaitDiv();" />
            						</div>
            						
            						<br /><br />
            					</div>
            					
            					<div id="waitDiv" style="display:none" class="wait">
            						<h:graphicImage value="/img/wait.gif" />
            					</div>
            					
            					<script defer="false" language="Javascript">
            						chargerCookie();
            					</script>
            				</h:form>
            			</div>
            		</ui:define>
            	</ui:composition>
            </f:view>
            




            Voici maintenant, l'interprétation de Firefox pour cette page :

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
            <html xmlns="http://www.w3.org/1999/xhtml" xmlns:vh="http://rcfaces.org/html" xmlns:v="http://rcfaces.org/core">
            	
            	<head>
            		<title>Mise en relation telephonique</title>
            		<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
            		<link class="component" href="/webCall/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/basic_both.xcss/DATB/eAELXT5DOhSIAQ!sA18_.jsf" rel="stylesheet" type="text/css" /><link class="component" href="/webCall/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/extended_both.xcss/DATB/eAELXT5DOhSIAQ!sA18_.jsf" media="rich-extended-skinning" rel="stylesheet" type="text/css" /><script type="text/javascript">window.RICH_FACES_EXTENDED_SKINNING_ON=true;</script><script src="/webCall/a4j/g/3_3_3.Finalorg/richfaces/renderkit/html/scripts/skinning.js.jsf" type="text/javascript"></script><script type="text/javascript" src="../js/webCall.js"></script>
            		<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
            
            		<script type="text/javascript" src="../js/jquery.countdown.js"></script><link rel="stylesheet" type="text/css" href="/webCall/css/jquery.countdown.css" /><link rel="stylesheet" type="text/css" media="print" href="/webCall/css/print.css" /><link rel="stylesheet" type="text/css" href="/webCall/css/webCall.css" />
            	</head>
            	
            	<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
            		<div class="all">
            			<div id="page" class="page"><div id="j_id6">
            					<div id="noPrint" class="mainHeader"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
            	
            		<div id="header" class="header">
            			<table width="100%" height="75" border="0">
            
            			  <tr>
            			    <td width="24%" height="49"><img src="/webCall/img/logo_OBS_gauche.jpg" /></td>
            			  </tr>
            			</table>
            		</div>
            					</div></div>
            				
            				<div id="contenu" class="contenu">
            					<div class="arrondi un"></div>
            			        <div class="arrondi deux"></div>
            
            			        <div class="arrondi trois"></div>
            			        <div class="arrondi quatre"></div>
            	            	<div class="cadreFormulaire">
            			<div id="content" class="content">
            <form id="formToCall" name="formToCall" method="post" action="/webCall/xhtml/formulaire.jsf" enctype="application/x-www-form-urlencoded">
            <input type="hidden" name="formToCall" value="formToCall" />
            
            					<div id="formulaireAppel" class="formulaireAppel"><label id="titreFormulaire" class="titreFormulaire">
            Service de mise en relation t&eacute;l&eacute;phonique</label>
            
            						<br /><br /><br /><label id="texteRappelImmediat">
            Pour un rappel imm&eacute;diat, indiquez le num&eacute;ro de t&eacute;l&eacute;phone du service ou de la personne &agrave; contacter :</label>
            						<br /><br /><input id="inputNumAppele" type="text" name="inputNumAppele" value="" class="inputForm" />
            						<br />
            						
            						<br /><br /><br /><label id="texteNumero">
            Indiquez votre num&eacute;ro :</label>
            
            						<br /><br /><input id="inputNumAppelant" type="text" name="inputNumAppelant" value="" class="inputForm" />
            						<br />
            						
            						<br /><br /><br /><input id="afficheNum" type="checkbox" name="afficheNum" /><label for="afficheNum" class="outputAfficheNum">
            Afficher mon num&eacute;ro sur le poste destinataire.</label>
            						
            						<br /><br />
            						
            						<div id="boutonOk" class="boutonOk"><input id="lancementAppel" type="image" src="/webCall/img/btn_valider.png" name="lancementAppel" onclick="sauvegarderCookie();showWaitDiv()" style="border=0" />
            						</div>
            						
            						<br /><br />
            
            					</div>
            					
            					<div id="waitDiv" style="display:none" class="wait"><img src="/webCall/img/wait.gif" />
            					</div>
            					
            					<script language="Javascript">
            						chargerCookie();
            					</script><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="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" autocomplete="off" />
            </form>
            			</div>
            	            	</div>
            			        <div class="arrondi quatre"></div>
            			        <div class="arrondi trois"></div>
            
            			        <div class="arrondi deux"></div>
            			        <div class="arrondi un"></div>
            				</div><div id="j_id34">
            					<div id="noPrint" class="mainFooter"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
            
            		<div id="footer" class="footer">
            			<div class="CGU">Condition general dutilisation</div>
            			
            			<br />
            			
            			<div>
            
            				<p class="footerLeft">&copy; Orange Business Services </p><img src="/webCall/img/logo_internet.gif" class="footerRight" />
            			</div>
            		</div>
            					</div></div>
            		        
            	        </div>
            	    </div>
            	</body>
            </html>
            



            Et voici celle d'IE (7) :

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
            <html xmlns="http://www.w3.org/1999/xhtml" xmlns:vh="http://rcfaces.org/html" xmlns:v="http://rcfaces.org/core">
            	
            	<head>
            		<title>Mise en relation telephonique</title>
            		<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
            		<link class="component" href="/webCall/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/basic_both.xcss/DATB/eAELXT5DOhSIAQ!sA18_.jsf" rel="stylesheet" type="text/css" /><link class="component" href="/webCall/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/extended_both.xcss/DATB/eAELXT5DOhSIAQ!sA18_.jsf" media="rich-extended-skinning" rel="stylesheet" type="text/css" /><script defer  type="text/javascript">window.RICH_FACES_EXTENDED_SKINNING_ON=true;</script><script src="/webCall/a4j/g/3_3_3.Finalorg/richfaces/renderkit/html/scripts/skinning.js.jsf" type="text/javascript"></script><script defer  type="text/javascript" src="../js/webCall.js"></script>
            		<script defer  type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
            		<script defer  type="text/javascript" src="../js/jquery.countdown.js"></script><link rel="stylesheet" type="text/css" href="/webCall/css/jquery.countdown.css" /><link rel="stylesheet" type="text/css" media="print" href="/webCall/css/print.css" /><link rel="stylesheet" type="text/css" href="/webCall/css/webCall.css" />
            	</head>
            	
            	<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
            		<div class="all">
            			<div id="page" class="page"><div id="j_id6">
            					<div id="noPrint" class="mainHeader"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
            	
            		<div id="header" class="header">
            			<table width="100%" height="75" border="0">
            			  <tr>
            			    <td width="24%" height="49"><img src="/webCall/img/logo_OBS_gauche.jpg" /></td>
            			  </tr>
            			</table>
            		</div>
            					</div></div>
            				
            				<div id="contenu" class="contenu">
            					<div class="arrondi un"></div>
            			        <div class="arrondi deux"></div>
            			        <div class="arrondi trois"></div>
            			        <div class="arrondi quatre"></div>
            	            	<div class="cadreFormulaire">
            			<div id="content" class="content">
            <form id="formToCall" name="formToCall" method="post" action="/webCall/xhtml/formulaire.jsf" enctype="application/x-www-form-urlencoded">
            <input type="hidden" name="formToCall" value="formToCall" />
            
            					<div id="formulaireAppel" class="formulaireAppel"><label id="titreFormulaire" class="titreFormulaire">
            Service de mise en relation t&eacute;l&eacute;phonique</label>
            						<br /><br /><br /><label id="texteRappelImmediat">
            Pour un rappel imm&eacute;diat, indiquez le num&eacute;ro de t&eacute;l&eacute;phone du service ou de la personne &agrave; contacter :</label>
            						<br /><br /><input id="inputNumAppele" type="text" name="inputNumAppele" value="" class="inputForm" />
            						<br />
            						
            						<br /><br /><br /><label id="texteNumero">
            Indiquez votre num&eacute;ro :</label>
            						<br /><br /><input id="inputNumAppelant" type="text" name="inputNumAppelant" value="" class="inputForm" />
            						<br />
            						
            						<br /><br /><br /><input id="afficheNum" type="checkbox" name="afficheNum" /><label for="afficheNum" class="outputAfficheNum">
            Afficher mon num&eacute;ro sur le poste destinataire.</label>
            						
            						<br /><br />
            						
            						<div id="boutonOk" class="boutonOk"><input id="lancementAppel" type="image" src="/webCall/img/btn_valider.png" name="lancementAppel" onclick="sauvegarderCookie();showWaitDiv();" style="border=0" />
            						</div>
            						
            						<br /><br />
            					</div>
            					
            					<div id="waitDiv" style="display:none" class="wait"><img src="/webCall/img/wait.gif" />
            					</div>
            					
            					<script defer  defer="false" language="Javascript">
            						chargerCookie();
            					</script><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="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" autocomplete="off" />
            </form>
            			</div>
            	            	</div>
            			        <div class="arrondi quatre"></div>
            			        <div class="arrondi trois"></div>
            			        <div class="arrondi deux"></div>
            			        <div class="arrondi un"></div>
            				</div><div id="j_id34">
            					<div id="noPrint" class="mainFooter"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
            
            		<div id="footer" class="footer">
            			<div class="CGU">Condition general dutilisation</div>
            			
            			<br />
            			
            			<div>
            				<p class="footerLeft">&copy; Orange Business Services </p><img src="/webCall/img/logo_internet.gif" class="footerRight" />
            			</div>
            		</div>
            					</div></div>
            		        
            	        </div>
            	    </div>
            	</body>
            </html>
            


            La seule différence que je vois, c'est l'interprétation des balise <script>...
            • Partager sur Facebook
            • Partager sur Twitter
              20 décembre 2010 à 12:06:39

              Pourquoi t'as defer="false" dans la JSF ?
              • Partager sur Facebook
              • Partager sur Twitter
                20 décembre 2010 à 13:19:40

                J'ai rajouté defer=false dans ma balise script pour faire un test. En fait, je me suis dis que si je forçais le tag defer a prendre la veleur false, IE aurais virer ce tag. Mais visiblement, cela n'a pas fonctionner :-/

                Du coup, je n'avance pas sur ce bug... :'(
                • Partager sur Facebook
                • Partager sur Twitter
                  20 décembre 2010 à 14:30:01

                  En général, lorsque IE dit "Objet attendu" c'est qu'une virgule en trop s'est attardée dans le code. je m'explique :
                  var obj = {
                      prop1: val1,
                      prop2: val2,
                  };
                  

                  Le code précédent fonctionnera partout sauf sur IE, car la virgule après val2 fait croire à IE qu'une autre valeur va suivre (là où les autres navigateurs sont assez intelligents pour comprendre qu'en fait non). D'où le "Objet attendu". La même chose arrive avec la déclaration des tableaux var tab = [val1,val2,]; .

                  Vérifie donc ton code et regarde si une virgule ne s'est pas insérée au mauvais endroit.

                  PS: C'est l'un des rares points sur lequel je suis d'accord avec IE, javascript étant déjà assez permissif comme ça... Mais ce n'est pas le sujet.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 décembre 2010 à 14:48:25

                    Merci pour ce petit éclaircissement !

                    J'ai vérifier mon JS, et je n'ai rien de tel. Dans le doute, voici mon code JS :

                    /*
                     * Gestion des cookies.
                     */
                    
                    //Fonction qui sauvegarde plusieurs données dans le cookie.
                    function sauvegarderCookie() {
                    	creerCookie("numTo", document.getElementById("inputNumAppele").value, 1);
                    	creerCookie("numFrom", document.getElementById("inputNumAppelant").value, 1);
                    }
                    
                    //Fonction qui créer le cookie.
                    function creerCookie(nom, contenu, jours) {
                    	var expireDate = new Date();
                    	expireDate.setTime(expireDate.getTime() + jours*24*3600*1000);
                    	document.cookie = nom + "=" + escape(contenu) + ";expires=" + expireDate.toGMTString();
                    }
                    
                    //Fonction qui lit le cookie.
                    function lireCookie(nom) {
                    	var debut;
                    	var fin;
                    	debut = document.cookie.indexOf(nom + "=");
                    	
                    	if (debut >= 0) {
                    		debut += nom.length + 1;
                    		fin = document.cookie.indexOf(";", debut);
                    		if (fin < 0) {
                    			fin = document.cookie.length;
                    		}
                    		
                    		return unescape(document.cookie.substring(debut, fin));
                    	}
                    	return "";
                    }
                    
                    
                    //Fonction qui charge le cookie s'il y en a un.
                    function chargerCookie() {
                    	if (lireCookie("numTo") != null) {
                    		document.getElementById("inputNumAppele").value = lireCookie("numTo");
                    	} else {
                    		document.getElementById("inputNumAppele").value = "";
                    	}
                    	
                    	if (lireCookie("numFrom") != null) {
                    		document.getElementById("inputNumAppelant").value = lireCookie("numFrom");
                    	} else {
                    		document.getElementById("inputNumAppelant").value = "";
                    	}
                    }
                    


                    J'espère que vos yeux aguerris y trouverons mon soucis :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 décembre 2010 à 15:52:57

                      Je ne vois aucune erreur évidente...

                      Pour débugguer sous IE, c'est toujours un peu complexe, mais y'a la méthode bourrine :

                      Tu mets un alert() au début et à la fin de toutes tes fonctions, par exemple :

                      function sauvegarderCookie() {
                          alert("Début sauvegarderCookie()");
                      	creerCookie("numTo", document.getElementById("inputNumAppele").value, 1);
                      	creerCookie("numFrom", document.getElementById("inputNumAppelant").value, 1);
                          alert("Fin sauvegarderCookie()");
                      }
                      


                      Et tu regardes quelles alertes sont affichées... et quelles alertes ne le sont pas alors qu'elles devraient.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 décembre 2010 à 17:29:12

                        (re)Bonjour,

                        Merci Golmote pour cette méthode de debbugage de JS :D

                        Ce qui est drôle, et vraiment bizarre, c'est que tous les alertes apparaissent, donc on rentre bien dans les méthodes JS. Ce n'est qu'ensuite que j'ai le message "Objet attendu".

                        Par exemple, pour mon chargement de cookie, je voyais mes champs remplis lors du chargement de la page, et des que j'ai eu le message "Objet attendu", ils se sont vidé :-/


                        J'ai finalement trouvé la solution à mon soucis, merci à tous ceux qui ont essayé de m'aider à le résoudre.

                        Voici le soucis : ma page JSF s'affiche dans mon browser suite a une redirection AJAX. Or, il apparaît qu'une redirection AJAX interprète à sa sauce une page html. C'est pourquoi j'avais le droit au tag "defer" dans toutes mes balises <script>. Du coup, tout mon JS se chargeais dans n'importe quel ordre, ce qui faisais planter mes méthodes JS.

                        La solution : remplacer la redirection AJAX (a4j:commandButton) par une redirection normal (h:commandButton). Pour une redirection sans passage de paramètres, ça fonctionne. Mon problème a été résolue.

                        Une fois de plus, merci.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Javascript, balise <script>, defer et IE !

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown