DojoとZend Frameworkを使用している私が書いているアプリケーションに問題があります。この問題はInternet Explorer 6、IEの他のバージョン、ff、chrome、safariの問題はありません。Zend Frameworkを使用するとdojoがクラッシュする(ie6)
ログインページにIE6があると、[詳細をMicrosoftに送信]ダイアログボックスでクラッシュします。ログイン・スクリプトはdojoを使用して、ユーザーがパスワードが正しくフォーマットされていることを確認するための検証を提供します。
dojoのaddOnLoad () 役立つだろう。 http://www.dojotoolkit.org/forum/dojo-core-dojo-0-9/dojo-core-support/dom-manipulation-addonload-crashes-ie6
問題は、アプリケーションのlayout.phtmlにあるdojoヘッダーを操作する方法です。現在のところ、このコードをヘッダーに記載しています。
<?php
$this->dojo()->setLocalPath($this->baseUrl().'/javascript/dojo/dojo.js');
$this->dojo()->addStylesheetModule('dijit.themes.tundra');
echo $this->dojo();
?>
これは、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"}}];
どのようにリンクに記載された修正をしようとして追加するには、これを変更したり、IE6はすべての時間をクラッシュすることなく、これを書くための別の方法があることができます?私は、クライアントがIE6を使用している場合に備えて、すべてのクライアントの検証を削除するよりも、これを修正することをお勧めします。あなたがIE6をクラッシュされるものを見つけるまで、
おかげで...
上記のコードは正常です。ページ上に原因がありますか? IE6で問題なく動作しているのと同じことが(Zendではなく)ほぼ同じです。 – seth
私が持っているのは、ユーザー名が電子メールアドレスで、パスワードがパスワード要件とログインボタンに一致することを確認するための正規表現を使用する2つのテキストボックスです。それ以外には、他のdojoコンポーネントはありません。 –
奇妙な。私はちょうどこのページhttp://jsbin.com/utami3を設定し、IE6の私のバージョンでうまく動作します。 Zendはどのdojoのバージョンを使用しますか? – seth