我打開一個對話框,從我的應用程序使用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或任何其他解決方案。如果我們不能解決這個問題,那麼我們需要重新考慮解決方案。 –