0
我試圖在我的應用程序的頁面中使用dojo的對話框,但IE7中的頁面出現了一些問題(或者在某些情況下,在IE 8中有一些問題,當頁面以兼容模式查看時)。 以下是我正在嘗試編寫的頁面的粗略框架結構。IE8中的dojo對話框問題
<head>
<style type="text/css">
body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js"
djConfig="parseOnLoad: true">
</script>
<script type="text/javascript">
dojo.require("dijit.Dialog");
var secondDlg;
dojo.addOnLoad(function() {
var foo = new dijit.Dialog({id:'testDialog', title: "test dialog", content: "test content" }, dojo.byId('dialog1Container'));
foo.startup();
var foo2 = new dijit.Dialog({id:'testDialog2', title: "test dialog 2", content: "test content 2" }, dojo.byId('dialog2Container'));
foo2.startup();
});
wrapper = function() {
dijit.byId('testDialog').show();
}
</script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css"
/>
</head>
<body class=" claro ">
<p>
When pressing this button the dialog will popup. Notice this time there
is no DOM node with content for the dialog:
</p>
<a onClick="wrapper();"> Show the test dialog</a>
<br />
<a onClick="dijit.byId('testDialog2').show();"> Show the test dialog</a>
<div id="dialog1Container"></div>
<div id="dialog2Container"></div>
</body>
在IE7中,頁面時,它會嘗試從第一鏈接顯示對話框只是掛起。 下面是生病此頁面的弊病的一些症狀:
- 它打破了,如果有在DOM超過1 Dijit.dialog。如果只有1個,那麼它工作正常
- 如果dom中有多個對話框實例,則只有最後一個對話框可以正常工作。所有先前的結果都會導致瀏覽器凍結。
- 我使用的解決方案是在我的js中動態創建dijit.Dialog的一個實例,並將其插入到dom容器中並搭建一個自定義方法來隱藏它。當我隱藏它時,我也會在對話框中調用destroy,以便從dom中刪除對話框。這讓我在我的網頁多個地方,可以在時間
還有一些額外的信息的任何點使用的對話框中,但只有1將顯示與存在於DOM:
- 我使用的HTML文檔類型是DTD XHTML 1.0過渡// EN」「http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
- 它工作在FF,鉻和IE 8細,只有在中斷IE 7
- 我使用道場1.5(不一個來自谷歌的網站,但來自我的服務器的副本,但我不能把它放在示例代碼中)
任何人有任何關於在IE 7中有問題的dojo對話框的想法?