我需要打开弹出对话框,然后将焦点设置在父窗口的元素上。但是一旦设置了焦点(5秒后),弹出对话框就会移到后台(此行为仅适用于IE8)。
有代码可以证明这种行为:
父页面:
<h:head>
<h:outputScript name="jquery.js"/>
<script type="text/javascript">
var showPopup = function () {
window.open("http://localhost:8880/pages/reader.xhtml", "Popup");
};
var setupFocus = function () {
setTimeout(function () {
$('#mainFrm\\:nameInp').focus();
}, 5000);
};
</script>
</h:head>
<h:body>
<h:form id="mainFrm">
<h:inputText id="nameInp"/>
<h:commandButton type="button" onclick="showPopup(); setupFocus()" value="Show Popup"/>
</h:form>
</h:body>
弹出对话框页面(它是空的):
<h:head>
</h:head>
<h:body>
</h:body>
此问题是否有解决方法?
答案 0 :(得分:1)
此行为似乎是“按设计”。毕竟,您将焦点设置到弹出窗口之外的元素,因此弹出窗口移动到背景是有意义的。