Dojo 및 Zend Framework를 사용하는 필자가 작성한 응용 프로그램에 문제가 있습니다. 이 문제는 Internet Explorer 6, IE, ff, 크롬 및 사파리의 다른 버전에만 영향을 미치며 문제없이 잘 작동합니다.Zend Framework를 사용할 때 do6이 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를 사용하는 경우에 대비하여 모든 클라이언트 유효성 검사를 제거하는 것보다이 문제를 해결하는 것이 좋습니다.
덕분에 ...
위의 코드는 정상적으로 보입니다. 페이지에 범인이 될만한 것이 있습니까? 나는 똑같은 문제 (Zend가 아닌)를 IE6에서 아무 문제없이 실행하고있다. – seth
실제로 내가 가진 모든 것은 사용자 이름이 전자 메일 주소이고 암호가 암호 요구 사항과 일치하는지, 로그인 단추와 일치하는지 확인하기 위해 몇 가지 정규식을 사용하는 2 개의 텍스트 상자입니다. 그 외의 다른 도장 구성 요소는 없습니다. –
이상한. 난 그냥이 페이지 http://jsbin.com/utami3 설정하고 잘 IE6 내 버전에서 작동합니다. Zend는 어떤 dojo 버전을 사용합니까? – seth