Je rencontre des problèmes avec une application que j'écris qui utilise Dojo et Zend Framework. Le problème affecte uniquement Internet Explorer 6, d'autres versions d'IE, ff, chrome et safari fonctionnent correctement sans problèmes.dojo se bloque ie6 lors de l'utilisation de Zend Framework
Lorsque IE6 atterrit sur la page de connexion, il se bloque avec la boîte de dialogue Envoyer les détails vers Microsoft. Le script de connexion utilise dojo pour fournir une validation aux utilisateurs afin de s'assurer que leurs mots de passe sont correctement formatés.
J'ai vu sur certains forums que l'appel de la fonction addOnLoad() dans dojo pouvait être la cause et un window.setTimeout() aiderait. http://www.dojotoolkit.org/forum/dojo-core-dojo-0-9/dojo-core-support/dom-manipulation-addonload-crashes-ie6
Le problème que j'ai est comment manipuler l'en-tête de dojo que nous avons dans le layout.phtml dans l'application. Nous avons actuellement dans le fichier ce code dans l'en-tête.
<?php
$this->dojo()->setLocalPath($this->baseUrl().'/javascript/dojo/dojo.js');
$this->dojo()->addStylesheetModule('dijit.themes.tundra');
echo $this->dojo();
?>
Ceci produit ce qui suit dans le code html.
dojo.require("dijit.form.ValidationTextBox"); dojo.require("dijit.form.Button"); dojo.require("dojo.parser"); dojo.addOnLoad(function() { dojo.forEach(zendDijits, function(info) { var n = dojo.byId(info.id); if (null != n) { dojo.attr(n, dojo.mixin({ id: info.id }, info.params)); } }); dojo.parser.parse(); }); var zendDijits = [{"id":"username","params":{"regExp":"[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$","invalidMessage":"Please enter a valid email address","trim":"true","required":"true","dojoType":"dijit.form.ValidationTextBox"}},{"id":"password1","params":{"trim":"true","lowercase":"true","regExp":"^.*(?=.{6,})(?=.*\\d)(?=.*[a-zA-Z]).*$","invalidMessage":"Invalid Password. Password must be at least 6 alphanumeric characters","required":"true","dojoType":"dijit.form.ValidationTextBox"}},{"id":"submit","params":{"label":"Login","dojoType":"dijit.form.Button"}}];
Comment puis-je changer cela pour essayer et ajouter les correctifs mentionnés dans le lien, ou est-il une autre façon d'écrire cela sans IE6 écraser tout le temps ?? Je préférerais corriger cela que de supprimer toute la validation du client, juste au cas où le client utilise IE6.
... merci
Le code ci-dessus semble correct. Y a-t-il autre chose sur la page qui pourrait être le coupable? J'ai à peu près la même chose (pas via Zend) fonctionnant sur IE6 sans aucun problème. – seth
Pas vraiment tout ce que j'ai sont 2 boîtes de texte qui utilisent quelques regex pour vérifier que le nom d'utilisateur est une adresse e-mail et que le mot de passe correspond aux exigences de mot de passe, plus un bouton de connexion. A part ça, il n'y a pas d'autres composants du dojo. –
Bizarre. Je viens de configurer cette page http://jsbin.com/utami3 et cela fonctionne très bien dans ma version de IE6. Quelle version de Dojo Zend utilise-t-elle? – seth