避免重复的浏览器选项卡或窗口(window.open())

时间:2012-02-29 09:15:47

标签: javascript window window.open

在Javascript中,我们可以使用window.open()打开一个新的浏览器窗口或选项卡。 但是如果一个标签已经打开,它应该只突出显示。它不应该打开重复的选项卡。 怎么做?

4 个答案:

答案 0 :(得分:4)

window.open(strUrl, strWindowName[, strWindowFeatures]);的{​​{3}}是窗口名称。如果您指定该参数,除了“_blank”之外的任何内容,它将引用已打开的选项卡/窗口。

例如:

window.open('/about', 'newwindow');

window.open('/contact', 'newwindow');

将在已打开的窗口/标签页中打开页面。

答案 1 :(得分:2)

确保每次都向window.open()提供相同的窗口名称! (第二个参数,不能为空)

您需要管理从window.open()返回的窗口对象并检查它是否已关闭,请查看https://developer.mozilla.org/en/DOM/windowclosed属性。您将需要一个窗口到URL列表,这将帮助您决定是否使用window.open()打开一个新窗口(此时未打开的URL)或使用openedWindow.focus()(openedWindow)是前一次调用window.open()返回的对象,以使窗口进入视图。

答案 2 :(得分:2)

为窗口指定目标名称: http://www.javascript-coder.com/window-popup/javascript-window-open.phtml

如果已存在,则会在其中打开新网址

答案 3 :(得分:0)

Candide的代码需要稍作修改。应检查空条件而不是“!=”

popwin.html是您要在弹出窗口中打开的页面。我知道这已经回答了,只是发布以防有人想稍后再提及。

主窗口代码:

<script type='text/javascript'>
var newwin;
function popup(){

if (newwin == null) 
    { 
    window.open('popwin.html', 'newwin'); 
    } 
    else 
    { 
    newwin.focus(); 
    }
}

</script>

在同一页面的正文区域内拨打POPUP:

<a href="#" onClick="popup();">Open Window</a>