当用户更改选择下拉列表的值时,我使用javascript将URL加载到_blank页面。
urlmenu.onchange = function() {
window.open( this.options[ this.selectedIndex ].value, '_blank');
};
但我只希望脚本打开一个新标签,如果它们再次更改,请在之前打开的标签页中打开新页面。
答案 0 :(得分: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 :(得分:1)
第二个参数应该是新创建的窗口的名称(在您的情况下为_blank
)。它在HTML target
属性中用于引用JS中的弹出窗口和来检查,如果window.open()
应该打开一个新的窗口/选项卡,或者重新加载现有的窗口/选项卡
要在每次调用时打开新选项卡,请使用例如时间戳创建唯一的窗口名称。要在同一选项卡中打开所有新页面,请为窗口指定一个常量名称。
答案 2 :(得分:1)
var isOpen = false;
if(!isOpen){
urlmenu.onchange = function() {
window.open( this.options[ this.selectedIndex ].value, '_blank');
};
isOpen = true;
}
尝试使用此功能,希望我理解正确。