2009-06-30 11 views
0

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をクラッシュされるものを見つけるまで、

おかげで...

+0

上記のコードは正常です。ページ上に原因がありますか? IE6で問題なく動作しているのと同じことが(Zendではなく)ほぼ同じです。 – seth

+0

私が持っているのは、ユーザー名が電子メールアドレスで、パスワードがパスワード要件とログインボタンに一致することを確認するための正規表現を使用する2つのテキストボックスです。それ以外には、他のdojoコンポーネントはありません。 –

+0

奇妙な。私はちょうどこのページhttp://jsbin.com/utami3を設定し、IE6の私のバージョンでうまく動作します。 Zendはどのdojoのバージョンを使用しますか? – seth

答えて

1

あなたはそれを減らすことはできますか?静的HTMLとして出力を保存し、それでもIEがクラッシュしてコードが削除されることを確認します。そのaddOnLoadをすべて取り出す - それでもクラッシュしますか?もしそうでなければ、forEachを取り出します。 zendDijits配列から要素を削除し始めます。特に問題の原因となるものはありますか?

これは在庫IE6ですか?任意のプラグイン/アドオン?

あなたのphpはdojo.jsを引き出すスクリプト要素を生成する必要があります。 Zendコードが動作することがわかっているので、すべてあなたがこれを解決する必要がある場合は、情報が必要であることが分かっています。

関連する問題