Dojo 1.8 - dijit.Dialog を使用してアプリケーションからダイアログ ボックスを開いています。ダイアログ ウィンドウには、ヘルプを表示するためのアイコンがあります。このヘルプをクリックすると、(window.open を使用して) 新しいウィンドウが開き、ヘルプ テキストが表示されます。
コードは Firefox では機能しますが、IE では機能しません (IE 8、9、10 のすべてのバージョン)。ヘルプ ウィンドウは、常に親ウィンドウの背面に表示されます。Alt+Tab でも、ヘルプ ウィンドウが前面に表示されませんでした。(別の画面で Alt+Tab を押すと、ヘルプ ウィンドウが表示されます)。
ダイアログなしでページで関数を直接呼び出すと、IEでも機能します。Dojo 1.6 を使用すると、コードは IE で動作します。問題は道場 1.8 だけです。
ヘルプ ウィンドウで autofocus を false に、refocus を false に、window.focus を使用しました。しかし、何も役に立ちません。これに関するヘルプまたはポインタをいただければ幸いです。ありがとう
注: アプリケーションは Xpage にあるため、一部のタグは無視できます。問題は Dojo に関連しています。
コードはこのようなものです。3ページあります。最初のページには、2 つの Javascrip 関数とダイアログを開くためのリンクが含まれています。2 番目のページはダイアログで、window.open を使用してヘルプ ページを開くためのリンクが含まれています。3 ページ目はヘルプのテキストです。
ページ1
<a onclick="javascript:modalwindojo('Dijit Dialog','FirstDialog.xsp','dialog1')" href="#">modalwindow</a>
ページ 2 - ダイアログ ページ
<a href="javascript:openHelp('FirstHelp.xsp');" id="link2">Help</a>
ページ 3 - ヘルプ ページ<script>window.focus();</script>
JavaScript 関数
<script>
function openHelp(helpUrl){
windowHelpObjectReference = window.open(helpUrl,
"Help", "resizable=yes,scrollbars=no,status=yes,width=700,height=500");
windowHelpObjectReference.focus();
}
dojo.require("dijit.Dialog");
function modalwindojo(dtitle, link, dialogId)
{
var dlg = dijit.byId(dialogId);
if (!dlg) {
dlg = new dijit.Dialog({
title : dtitle,
href : link,
autofocus :false ,
refocus : false
}, dojo.byId(dialogId));
}
// dlg.startup();
dlg.show();
}
</script>