Xpages window.open从dojo dijit.dialog打开时失去焦点

Xpages window.open从dojo dijit.dialog打开时失去焦点,xpages,dojo,Xpages,Dojo,我正在使用Dojo 1.8-dijit.dialog从我的应用程序打开一个对话框。在对话框窗口上有一个显示帮助的图标。如果单击此帮助,它将打开一个新窗口(使用window.open)并显示帮助文本 该代码在Firefox中有效,但在IE(IE8、9、10的所有版本)中无效。“帮助”窗口始终位于父窗口的后面。Alt+Tab也没有将帮助窗口置于最前面。(当您在另一个屏幕上,然后Alt+Tab将显示帮助窗口) 如果在没有对话框的页面中直接调用该函数,那么它也可以在IE中工作。如果我使用dojo 1.6

我正在使用Dojo 1.8-dijit.dialog从我的应用程序打开一个对话框。在对话框窗口上有一个显示帮助的图标。如果单击此帮助,它将打开一个新窗口(使用window.open)并显示帮助文本

该代码在Firefox中有效,但在IE(IE8、9、10的所有版本)中无效。“帮助”窗口始终位于父窗口的后面。Alt+Tab也没有将帮助窗口置于最前面。(当您在另一个屏幕上,然后Alt+Tab将显示帮助窗口)

如果在没有对话框的页面中直接调用该函数,那么它也可以在IE中工作。如果我使用dojo 1.6,那么代码在IE中工作。问题只出现在dojo 1.8中

我在“帮助”窗口中使用了“自动对焦到false”、“重新对焦到false”和“window.focus”。但没有任何帮助。在此方面的帮助或指点将不胜感激。谢谢

注意:应用程序在Xpage上,因此您可以忽略一些标记。问题与Dojo有关

代码是这样的。共有3页。第一个页面包含2个Javascrip函数和一个指向打开对话框的链接。第二个页面是一个对话框,包含使用window.open打开帮助页面的链接。第三页只是一个帮助文本

第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页-帮助页 只需将onloadevent作为
window.focus()的文本

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>

函数openHelp(helpUrl){
windowHelpObjectReference=window.open(helpUrl,
“帮助”,“可调整大小=是,滚动条=否,状态=是,宽度=700,高度=500”);
windowHelpObjectReference.focus();
} 
require(“dijit.Dialog”);
函数modalwindojo(dtitle、link、dialogId)
{
var dlg=dijit.byId(dialogId);
如果(!dlg){
dlg=新建dijit.Dialog({
标题:dtitle,
href:link,
自动对焦:错误,
重新聚焦:错误
},dojo.byId(dialogId));
}
//dlg.startup();
dlg.show();
}

使用Dijit面板而不是窗口。打开一个窗口是有风险的:弹出窗口拦截器可能会阻止它,如果一个窗口已经以相同的名称打开,它就不会出现在前台。如果使用选项卡,则用户没有逻辑知道哪个弹出窗口属于哪个选项卡。浏览器配置可能会强制弹出窗口在选项卡中打开


简言之:你最好有一个面板

你需要针对你的IE版本,它们的行为都不同。从对话框打开窗口听起来像是你的用户不会喜欢的UI模式。您考虑过使用Dojo面板吗?它还可以加载一个URL,这在所有IE版本(8、9和10)中都会发生。我们一直在从1.6迁移到1.8,所以我们没有想到Dojo Panel或任何其他解决方案。如果我们不能解决这个问题,那么我们需要重新审视解决方案。