osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> OS 2.3 : Bugs avec IE 7 et 8 sur windowsXP/Vista, chargement de page interrompu. (erreur KB927917)
ile-avalon
posté 7 Dec 2010, 11:45
Message #1


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 2
Inscrit : 7-December 10
Membre no 28489



Bonjour,

je dois monter deux boutiques, l'une de type traditionnel et l'autre de produits de téléchargement. A l'origine je voulais utiliser Joomla+Virtumart, mais j'ai trouvé que pour une pure boutique (Sans la partie site qui est géré à part) l'association de ces deux produits transforme la gestion d'un site en une véritable usine à gaz qui en fait trois fois trop et peut vite devenir lourd à administrer (Surtout pour un non-informaticien).

Je me suis donc réorienté vers oscommerce qui est finalement plus souple à l'usage et bien plus convivial à administrer.

Par contre, je rencontre quelques petits soucis...

1/ L'objet de sélection de date, que se soit dans la partie administrative ou dans la page de création d'un compte, me plante la page sous IE alors qu'elle fonctionne très bien sous Firefox. Cela me génère l'erreur "Internet Explorer can not open the Internet site ... Operation aborted".

Ayant déjà eu affaire à ce problème sur d'autres sites, cela viendrait d'un module JS qui tente de modifier la page en cours alors qu'elle n'a pas terminé de se charger.

Plusieurs recherches sur le net m'ont conduit vers diverses solutions, dont revoir la conception du site, mettre à jour Lightbox (Sauf que là, Lightbox n'y est pour rien), passer à IE8 (Ne marche pas), activer la compatibilité des sites sous IE8 (Marche pas non plus), désinstaller et réinstaller IE8 (A éviter, cela revient à appliquer la politique de l'autruche qui consiste à garder un bug sur son site et de considérer que c'est au visiteur de se débrouiller), etc.

Au final, la seule solution que j'ai trouvé actuellement est de ne pas demander la date de naissance pour ne pas avoir le module de date sur la page de création des comptes et d'administrer mon site sous Firefox. On ne peut pas dire que cela soit une vraie solution...

Donc s'il existe un moyen de corriger le bug je suis preneur...



Ce message a été modifié par FoxP2 - 8 Dec 2010, 18:32.
Raison de l'édition : édition du titre du sujet pour plus de clarté avec le problème rencontré.
Go to the top of the page
 
FoxP2
posté 7 Dec 2010, 15:08
Message #2


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



concernant le plugin datepicker, aucun problème de fonctionnement sur une boutique oscommerce vierge.
ce code a été éprouvé et validé sur les différents navigateurs du marché.(IE 6/7/8/9beta) avant d'être intégré dans le framework Jquery UI.

excl.gif Rectificatif :
il semblerait que le bug apparaisse pour les utilisateurs de Windows XP/Vista avec IE 7 & 8.

si vous rencontrez des bugs soyez précis sur votre configuration : Système d'exploitation et Navigateurs testés. ça facilitera le taf à ceux qui chassent les bugs.
Go to the top of the page
 
FoxP2
posté 8 Dec 2010, 12:22
Message #3


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



après avoir consulté le bug report, il y a effectivement certaines personnes qui rencontrent des difficultés similaires.
une solution, parmi tant d'autre : ajouter le paramètre defer="defer" dans tous les appels de script js de template_top. (n'est reconnu que par MSIE et permet de charger les javascripts après l'arbre html du DOM)
Go to the top of the page
 
FoxP2
posté 8 Dec 2010, 14:18
Message #4


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



bon, j'ai réussi à reproduire le bug en virtualisant un XP avec Internet Explorer 8.
c'est bien un problème de chargement du dom. le defer ne fonctionne pas, néanmoins, la solution existe :
fichier create_account :
remplacer la ligne 310 :
Code
        <td class="fieldValue"><?php echo tep_draw_input_field('dob', '', 'id="dob"') . '&nbsp;' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?><script type="text/javascript">$('#dob').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script></td>

par :
Code
        <td class="fieldValue"><?php echo tep_draw_input_field('dob', '', 'id="dob"') . '&nbsp;' . (tep_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">' . ENTRY_DATE_OF_BIRTH_TEXT . '</span>': ''); ?><script type="text/javascript">jQuery(document).ready(function () {$('#dob').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-100:+0'});})</script></td>


fichier advanced_search :
remplacer les lignes 139 à 148 :
Code
<script type="text/javascript">
$('#helpSearch').dialog({
  autoOpen: false,
  buttons: {
    Ok: function() {
      $(this).dialog('close');
    }
  }
});
</script>

par :
Code
<script type="text/javascript">
jQuery(document).ready(function () {$('#helpSearch').dialog({
  autoOpen: false,
  buttons: {
    Ok: function() {
      $(this).dialog('close');
    }
  }
});});
</script>

remplacer les lignes 175 & 179 :
Code
        <td class="fieldValue"><?php echo tep_draw_input_field('dfrom', '', 'id="dfrom"'); ?><script type="text/javascript">$('#dfrom').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-10:+0'});</script></td>

Code
        <td class="fieldValue"><?php echo tep_draw_input_field('dto', '', 'id="dto"'); ?><script type="text/javascript">$('#dto').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-10:+0'});</script></td>

par :
Code
        <td class="fieldValue"><?php echo tep_draw_input_field('dfrom', '', 'id="dfrom"'); ?><script type="text/javascript">jQuery(document).ready(function () {$('#dfrom').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-10:+0'});});</script></td>

Code
        <td class="fieldValue"><?php echo tep_draw_input_field('dto', '', 'id="dto"'); ?><script type="text/javascript">jQuery(document).ready(function () {$('#dto').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-10:+0'});});</script></td>


fichier admin/categories.php
remplacer les lignes 635 à 649 :
Code
$('#piDelConfirm').dialog({
  autoOpen: false,
  resizable: false,
  draggable: false,
  modal: true,
  buttons: {
    '<?php echo DELETE; ?>': function() {
      $('#piId' + piDelConfirmId).effect('blind').remove();
      $(this).dialog('close');
    },
    '<?php echo CANCEL; ?>': function() {
      $(this).dialog('close');
    }
  }
});

par :
Code
jQuery(document).ready(function () {$('#piDelConfirm').dialog({
  autoOpen: false,
  resizable: false,
  draggable: false,
  modal: true,
  buttons: {
    '<?php echo DELETE; ?>': function() {
      $('#piId' + piDelConfirmId).effect('blind').remove();
      $(this).dialog('close');
    },
    '<?php echo CANCEL; ?>': function() {
      $(this).dialog('close');
    }
  }
});
});

remplacer les lignes 691 à 693 :
Code
$('#products_date_available').datepicker({
  dateFormat: 'yy-mm-dd'
});

par :
Code
jQuery(document).ready(function () {$('#products_date_available').datepicker({
  dateFormat: 'yy-mm-dd'
});});


fichier admin/specials.php :
remplacer les lignes 128 à 130 :
Code
$('#expdate').datepicker({
  dateFormat: 'yy-mm-dd'
});

par :
Code
jQuery(document).ready(function () {$('#expdate').datepicker({
  dateFormat: 'yy-mm-dd'
});
});


fichier admin/customers.php :
remplacer la ligne 423 :
Code
              <script type="text/javascript">$('#customers_dob').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script>

par :
Code
              <script type="text/javascript">jQuery(document).ready(function () {$('#customers_dob').datepicker({dateFormat: '<?php echo JQUERY_DATEPICKER_FORMAT; ?>', changeMonth: true, changeYear: true, yearRange: '-100:+0'});});</script>


fichier admin/banner_manager.php :
remplacer les lignes 289 à 296 :
Code
<script type="text/javascript">
$('#date_scheduled').datepicker({
  dateFormat: 'yy-mm-dd'
});
$('#expires_date').datepicker({
  dateFormat: 'yy-mm-dd'
});
</script>

par :
Code
<script type="text/javascript">
jQuery(document).ready(function () {
$('#date_scheduled').datepicker({
  dateFormat: 'yy-mm-dd'
});
});
jQuery(document).ready(function () {
$('#expires_date').datepicker({
  dateFormat: 'yy-mm-dd'
});
});
</script>


rapport d'erreur d'IE:
Citation
Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
Timestamp: Wed, 8 Dec 2010 12:42:54 UTC


Message: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
Line: 0
Char: 0
Code: 0
URI: https://domain.com/catalog/create_account.p...1r9iq3uqb56jv14
Go to the top of the page
 
ile-avalon
posté 8 Dec 2010, 18:10
Message #5


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 2
Inscrit : 7-December 10
Membre no 28489



Citation (FoxP2 @ 7 Dec 2010, 15:08) *
excl.gif Rectificatif :
il semblerait que le bug apparaisse pour les utilisateurs de Windows XP avec IE 7 & 8.

si vous rencontrez des bugs soyez précis sur votre configuration : Système d'exploitation et Navigateurs testés. ça facilitera le taf à ceux chassent les bugs.


Dans mon cas je suis sous Vista 64bits, j'ai eu le bug sous IE7, je suis passé sous IE8 et le bug persiste mais se présente différemment. Sous IE7 c'est une message box qui s'affiche et impossible de consulter la page car cette dernière est fermée, alors que sous IE8 cela génère une erreur JS et la page n'est pas intégralement chargée (Généralement on perd tout se qui suit le module JS qui a généré le bug).

Et c'est bien l'erreur KB927917.

Généralement quand on effectue une recherche sur l'erreur en question, on tombe essentiellement sur des posts concernant IE7, visiblement rares sont ceux qui l'on sous IE8 et quand ils l'ont cela semble être un problème d'installation de leur IE. Mise à jour mal effectuée qu'il faut refaire, et bien évidemment ma mise à jour semble ne pas s'être effectuée correctement. Je me garde volontairement cette mauvaise mise à jour pour m'assurer que mes sites ne génèrent pas l'erreur...

Pour le "defer", j'ai bien peur que cela soit une solution foireuse, dans le sens que le comportement d'IE est différent suivant si l'on active ou non la compatibilité des sites, possible que le defer fonctionne si l'option est inactive. J'avais vu une autre solution qui consitait à faire appelle à la fonction JS dans le onload du BODY, mais encore faut t'il le pouvoir suivant la structure du site. J'ai aussi vu tout un rapport sur l'importance que pouvait avoir un script suivant si on le place dans une structure table ou non, il était conseillé de le placer après le tag de fermeture de la table plutôt que dans un TD ou TR.

Par contre, je n'avais pas vu le coup du "jQuery(document).ready" qui finalement attend que la page soit chargée avant de faire appel au script. En soit, cela reste à mon goût la meilleur des solutions même si elle s'avère contraignante pour le concepteur du site.

Bon par contre j'ai été obligé de revenir à Joomla+Virtuemart, après comparatif des deux systèmes il s'avère que J+V répond plus aux attentes des deux boutiques que je dois mettre en place et cela malgrès le côté usine à gaz. J'espère juste que l'utilisateur final de l'une des deux boutiques s'en sortiera niveau paramétrage, l'interface d'oscommerce aurait surrement était plus simple pour lui vu qu'il n'est pas informaticien de base, mais je n'ai pas vraiment le temps de monter deux boutiques sur deux systèmes différents... mellow.gif
Go to the top of the page
 
FoxP2
posté 8 Dec 2010, 18:30
Message #6


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



Citation (ile-avalon @ 8 Dec 2010, 18:10) *
Par contre, je n'avais pas vu le coup du "jQuery(document).ready" qui finalement attend que la page soit chargée avant de faire appel au script. En soit, cela reste à mon goût la meilleur des solutions même si elle s'avère contraignante pour le concepteur du site.

contraignante : non, logique par rapport au framework : oui.
c'est un oubli lors du développement initial d'oscommerce 2.3 de certaines fonctions (dèv qui a été extrêmement rapide sur les dernières heures - Chrysalide confirmera happy.gif )

bon, étant donné que tu as choisi une autre voie pour ton client, je vais me permettre de nettoyer ton sujet initial pour ne garder que l'essentiel traité ici.bon vent pour la suite.
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 16th April 2024 - 05:21
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)