问题:用户从小程序开始长时间操作;显示带有进度条的JDialog。用户打开/切换到另一个浏览器选项卡-仍然显示JDialog(并惹恼用户)。
当用户切换到另一个选项卡时,JDialog应该被隐藏;并在用户切换回时再次显示。
注意:我看到了类似问题的问题,解决方案是添加windowActivated /
deactivated监听器。它对我不起作用,因为窗口中有多个框架,其中一个框架包含applet。当用户单击另一个框架时,将强制执行windowDeactivate事件,但用户仍在同一选项卡中。
解决方案:将侦听器添加到所有帧
<head>
...
<script type="text/javascript">
onBlur=function(event) { window.focusFlag = false; };
onFocus=function(event){ window.focusFlag = true; };
function createFocusListeners()
{
window.focusFlag = true;
if (/*@cc_on!@*/false) { // check for Internet Explorer
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else if (typeof window.addEventListener != "undefined"){
document.getElementById('topFrame').contentWindow.addEventListener('focus',onFocus, false);
document.getElementById('topFrame').contentWindow.addEventListener('blur',onBlur, false);
document.getElementById('leftFrame').contentWindow.addEventListener('focus',onFocus, false);
document.getElementById('leftFrame').contentWindow.addEventListener('blur',onBlur, false);
document.getElementById('mainFrame').contentWindow.addEventListener('focus',onFocus, false);
document.getElementById('mainFrame').contentWindow.addEventListener('blur',onBlur, false);
window.addEventListener('focus',onFocus, false);
window.addEventListener('blur',onBlur, false);
}
};
//main frame is constantly reloaded, must add listener after each reload
window.createMainFrameFocusListeners = (function () {
if (typeof window.addEventListener != "undefined"){
document.getElementById('mainFrame').contentWindow.addEventListener('focus',onFocus, false);
document.getElementById('mainFrame').contentWindow.addEventListener('blur',onBlur, false);
}
});
</script>
</head>
<frameset rows="32,*" cols="*" onload="createFocusListeners();">
<frame id="topFrame" src="MenuFrame.jspx" name="topFrame" scrolling="NO" noresize="noresize"/>
<frameset rows="*" cols="280,*">
<frame id="leftFrame" src="TreeFrame.jspx" name="leftFrame" scrolling="NO"/>
<frame id="mainFrame" src="ListView.jspx" name="mainFrame" scrolling="NO"/>
</frameset>
</frameset>
问题内容: 这应该工作: 它可以在Firefox中运行,但不能在Chrome中运行(可能未在IE中运行,未经测试)。 一个更有趣的示例: 是将选项元素与DOM分离的唯一选择吗?我需要稍后再显示给他们,所以这不会很有效。 问题答案: 不幸的是,您不能在所有浏览器中隐藏元素。 在过去,当我需要这样做时,我就设置了它们的属性,就像这样… 然后,我使用了这段CSS,在浏览器中支持隐藏的位置…
我需要在浏览器选项卡之间切换,使用以下代码, 它有时只是正常工作,但有时表现出异常。有谁能建议我使用Java在一个窗口内切换选项卡的其他说明吗。
在HighCharts 5.0中,您可以定义一组应用于不同视口大小的响应式图表选项。请参阅https://www.highcharts.com/docs/chart-concepts/responsive. 不幸的是,对xAxis和yAxis的更改只在一个方向上起作用。再次调整浏览器大小时,无法恢复到原始选项。 示例一http://jsfiddle.net/gh/get/library/pure/
我试图编写一个函数,它将接收一个“浏览器实例”(我指的是),并打开一个带有特定URL的新选项卡。 这是函数: 返回True(如果URL有效) 如果有人能告诉我我做错了什么,我将非常感激。如果您有其他方法来完成打开新选项卡的任务,这是可以的。顺便说一下,我曾尝试使用:,但没有成功(我没有得到新的选项卡,也没有异常)
如何在Chrome浏览器上切换到父选项卡到新选项卡并打开新URL? 我想在打开新选项卡后访问一个新的URL,所以我已经编写了如下代码,但我能够打开新选项卡,并且系统正在父窗口中打开第二个URL,而不是在第二个选项卡上?