在Javascript中,我们可以使用window.open()打开一个新的浏览器窗口或选项卡。 但是如果一个标签已经打开,它应该只突出显示。它不应该打开重复的选项卡。 怎么做?
答案 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/window和closed
属性。您将需要一个窗口到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>