Javascript中,我们可以使用window.open()打开一个新的浏览器窗口或选项卡。但是如果选项卡已经打开,它应该只突出显示。它不应该打开重复的选项卡。如何实现?
Javascript中,我们可以使用window.open()打开一个新的浏览器窗口或选项卡。但是如果选项卡已经打开,它应该只突出显示。它不应该打开重复的选项卡。如何实现?
window.open(strUrl, strWindowName[, strWindowFeatures]);
的第二个参数是窗口名称。如果指定该参数为除 "_blank" 之外的任何其他内容,则它将引用已经打开的选项卡/窗口。
例如:
window.open('/about', 'newwindow');
和
window.open('/contact', 'newwindow');
会在已经打开的窗口/选项卡中打开页面。
newwin = window.open(...')
和 newwin.focus();
。它适用于弹出窗口,但在 Firefox 中不适用于标签页。在 IE 中,我认为它默认打开新窗口,所以它可以工作。 - Candideif (newwin != null) { newwin = window.open('...'); } else { newwin.focus(); }
- Candideclosed
属性。 您将需要一个窗口到URL列表,这将帮助您决定是使用window.open()打开新窗口(当前未打开的URL),还是使用openedWindow.focus()(openedWindow是上一次调用window.open()返回的对象)将窗口带到视图中。给窗口设置一个目标名称: http://www.javascript-coder.com/window-popup/javascript-window-open.phtml
如果已经存在,新的url将在其中打开。
Candide的代码需要稍作修改。应该检查null条件而不是“!=”
popwin.html是您想在弹出窗口中打开的页面。我知道这已经得到了回答,只是为了以后参考而发布。
主窗口代码:
<script type='text/javascript'>
var newwin;
function popup(){
if (newwin == null)
{
window.open('popwin.html', 'newwin');
}
else
{
newwin.focus();
}
}
</script>
在同一页面的body区域中调用弹出窗口:
<a href="#" onClick="popup();">Open Window</a>