我打开一个对话框,从我的应用程序使用Dojo 1.8 - dijit.Dialog。在对话框窗口中有一个图标来显示帮助。如果单击此帮助,它将打开一个新窗口(使用window.open)并显示帮助文本。window.open从dojo dijit.dialog打开时失去焦点
该代码适用于Firefox,但不适用于IE(IE 8,9,10的所有版本)。帮助窗口始终显示在父窗口的后面。 Alt + Tab也没有将帮助窗口放在前面。 (当你在其他屏幕上,然后Alt + Tab带来帮助窗口)。
如果在没有对话框的页面中直接调用该函数,那么它也可以在IE中使用。如果我使用dojo 1.6,那么代码在IE中工作。问题只出现在道场1.8
我已经使用自动对焦为false,重新调整为false,并在帮助窗口window.focus。但没有任何帮助。帮助或指针在这将不胜感激。由于
注:应用程序在XPage上,这样你就可以忽略某些tags.The问题是关系到道场
代码是这样的。有3页。第一页包含2个Javascrip函数和一个打开对话框的链接。第二页是一个对话框,并包含一个使用window.open打开帮助页面的链接。第三页只是帮助文本。
<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>
您需要具体针对您的IE版本,它们的行为都不相同。 – stwissel
从对话框打开窗口听起来就像用户不会欣赏的用户界面模式。您是否考虑过Dojo面板?它也可以加载一个url – stwissel
它发生在所有的IE版本(8,9和10)。我们已经从1.6迁移到1.8,所以我们没有想到Dojo Panel或任何其他解决方案。如果我们不能解决这个问题,那么我们需要重新考虑解决方案。 –