此功能适用于Chrome但在IE中无效。 我想在单击乘法时间时避免打开多个窗口。 我希望它找到现有的打开窗口并使用它。
function newWindow() {
var tab;
tab = window.open('http://google.com', 'MyTab', 'height=800px,width=1500px,resizable=yes');
tab.focus();
}
<body>
force to open tab in same window
<a href="#" onclick="newWindow();">New Window</a>
</body>
答案 0 :(得分:0)
看起来,IE会抛出一个&#34; Access denied&#34;尝试重新打开tab
时出错(由于跨源内容,但为什么,目前尚不清楚)。这会停止脚本,并且永远不会执行tab.focus()
。
要解决此问题,请将tab
的定义移至外部作用域,然后将window.open(...)
换行到try..catch
,如下所示:
var tab;
function newWindow() {
try {
tab = window.open('http://google.com', 'MyTab', 'height=800px,width=1500px,resizable=yes');
} catch (err) {;}
if (tab) {
tab.focus();
}
}
通过这种方式,您可以存储原始tab
,而tab.focus()
会将其显示在屏幕上的主风面前。