別の dijit.Dialog から dijit.Dialog を開くことができません。Dojo バージョン 1.5 の時点で正常に動作することを示唆する他の投稿をここで見ましたが、私は Dojo 1.6.1 を使用しており、あまり運がありません。http://dojotoolkit.org/documentation/tutorials/1.7/dialogs_tooltips/にあるDojo のドキュメントでは、「dijit/Dialog について知っておくべき重要な事実の 1 つは、インスタンスが「スタックに追加されることです。 "インスタンスを相互に重ねることができるようにします。"
現在表示されているダイアログから 2 番目のダイアログで show() を呼び出すと、2 番目のダイアログが一瞬ほとんど表示されなくなり、その後ブラウザが更新され、最初のダイアログだけが表示されたままになります。
簡単な例を次に示します。
<html>
<head>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dijit/themes/claro/claro.css" />
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js" djConfig="parseOnLoad: true"></script>
<script type="text/javascript">
dojo.require("dijit.dijit");
dojo.require("dijit.Dialog");
dojo.ready(function () {
dijit.byId("dialog1").show();
});
</script>
</head>
<body class="claro">
<div data-dojo-type="dijit.Dialog" id="dialog1" data-dojo-props="title:'Dialog 1'">
I'm dialog 1
<a href="" onclick="dijit.byId('dialog2').show();">Open dialog 2</a>
</div>
<div data-dojo-type="dijit.Dialog" id="dialog2" data-dojo-props="title:'Dialog 2'" style="visibility:hidden;">
I'm dialog 2
</div>
</body>
</html>
シンプルなものが欠けているような気がします。誰でも私を助けることができますか?理想的には、dialog1 はバックグラウンドに留まり、dialog2 はその上にモーダル ダイアログとして表示されます。