2014-09-19 61 views
0

当用户更改选择下拉列表的值时,我正在使用JavaScript将网址加载到_blank页面。在“选择”更新新标签打开网址...只有一次

urlmenu.onchange = function() { 
    window.open(this.options[ this.selectedIndex ].value, '_blank'); 
}; 

但我只希望脚本打开一个新的标签一次,如果他们再次更改打开他们以前打开的标签中的新页面。

+0

维护一个国旗呢? – 2014-09-19 07:48:47

+0

你可以给旗帜更多的反馈吗? – Denoteone 2014-09-19 07:52:54

+0

检查示例。 – 2014-09-19 09:45:17

回答

1

您可以检查窗口是否打开或不使用窗口

urlmenu.onchange = function() { 
     if (typeof(ref) != 'undefined') { 
     ref.location = this.options[ this.selectedIndex ].value; 
     } else { 
     ref = window.open(this.options[ this.selectedIndex ].value, '_blank'); 
     } 
    }; 
1

的第二个参数应该是新创建的窗口(_blank你的情况)的名称的参考。它用于HTML target属性中,用于引用JS中的弹出窗口来检查,如果window.open()应该打开一个新的窗口/选项卡或重新加载现有的窗口。

要打开每个呼叫的新选项卡,请使用例如时间戳创建唯一的窗口名称。要在同一选项卡中打开所有新页面,请给窗口一个常数名称。

1
var isOpen = false; 

if(!isOpen){ 
    urlmenu.onchange = function() { 
     window.open(this.options[ this.selectedIndex ].value, '_blank'); 
    }; 
    isOpen = true; 
} 

试着用这个,希望我理解正确。

相关问题