我正在使用 Dojo 1.8 - dijit.Dialog 从我的应用程序中打开一个对话框。在 Dialog 窗口中有一个图标来显示帮助。如果单击此帮助,它将打开一个新窗口(使用 window.open)并显示帮助文本。
该代码适用于 Firefox,但不适用于 IE(IE 8、9、10 的所有版本)。帮助窗口始终位于父窗口的后面。Alt+Tab 也没有将帮助窗口置于前面。(当您在其他屏幕上时,Alt+Tab 会显示帮助窗口)。
如果直接在没有对话框的页面中调用该函数,那么它也可以在 IE 中使用。如果我使用 dojo 1.6,那么代码可以在 IE 中运行。问题只在dojo 1.8
我在帮助窗口中使用了自动对焦到错误,重新对焦到错误和 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 的文本<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>