0

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>
4

1 に答える 1