Bonjour,
J'ai un problème concernant l'affichage d'une page web sous IE (5.X à 7), cela est du apparement comme le dit ce lien http://support.microsoft.com/kb/927917/fr à ceci :
"Ce problème se produit parce qu'un élément HTML conteneur enfant contient le code de script qui tente de modifier l'élément conteneur du conteneur enfant parent. Le code de script tente de modifier l'élément conteneur parent en utilisant la méthode innerHTML ou la méthode appendChild."
Dans mon code j'ai ceci lors de l'appel à la fonction qui traite tout cela :
Code :
- <script language="JavaScript" type="text/javascript" src={/literal}{"javascript/autocompletion.js"|ezdesign}{literal}></script>
- <script language="JavaScript" type="text/javascript">
- var url = {/literal}{"cinetitre.xml"|ezdesign}{literal};
- if (GetCookie('recherche') != false)
- document.submitfilm.search.value = GetCookie('recherche');
- initAutoComplete(url, document.getElementById('submitfilm'), document.getElementById('film'), document.getElementById('submit_form'));
- </script>
|
Et apparement apres debuggage, il semblerait qu'il ne passe pas dans la fonction MainLoop()
Code :
- function initAutoComplete(xml, form, field, submit)
- {
- url = xml;
- _documentForm=form;
- _inputField=field;
- _submitButton=submit;
- _inputField.autocomplete="off";
- creeAutocompletionDiv();
- _currentInputFieldValue=_inputField.value;
- _oldInputFieldValue=_currentInputFieldValue;
- cacheResults("", new Array())
- document.onkeydown=onKeyDownHandler;
- _inputField.onkeyup=onKeyUpHandler;
- _inputField.onblur=onBlurHandler;
- window.onresize=onResizeHandler;
- // Premier déclenchement de la fonction dans 200 millisecondes
- alert("avant" );
- setTimeout("mainLoop()", 200);
- alert("apres" );
- }
- // tourne en permanence pour suggerer suite à un changement du champ texte
- function mainLoop()
- {
- alert("dans le mainloop" );
- if (_oldInputFieldValue != _currentInputFieldValue)
- {
- var valeur = escapeURI(_currentInputFieldValue);
- var suggestions = _resultCache[_currentInputFieldValue];
- if (suggestions) // la réponse était encore dans le cache
- metsEnPlace(valeur,suggestions);
- else
- callSuggestions(valeur); // appel distant
- _inputField.focus();
- }
- _oldInputFieldValue=_currentInputFieldValue;
- setTimeout("mainLoop()", 200); // la fonction se redéclenchera dans 200 ms
- return true;
- }
|
il affiche bien "avant" et "apres", mais n'affiche pas le "dans le mainloop". Il est ou le rapport avec le bug decrit plus haut ?
D'autant plus que ca passe sous Firefox, mais pas sous IE