当用户更改选择下拉列表的值时,我正在使用JavaScript将网址加载到_blank页面。在“选择”更新新标签打开网址...只有一次
urlmenu.onchange = function() {
window.open(this.options[ this.selectedIndex ].value, '_blank');
};
但我只希望脚本打开一个新的标签一次,如果他们再次更改打开他们以前打开的标签中的新页面。
当用户更改选择下拉列表的值时,我正在使用JavaScript将网址加载到_blank页面。在“选择”更新新标签打开网址...只有一次
urlmenu.onchange = function() {
window.open(this.options[ this.selectedIndex ].value, '_blank');
};
但我只希望脚本打开一个新的标签一次,如果他们再次更改打开他们以前打开的标签中的新页面。
您可以检查窗口是否打开或不使用窗口
urlmenu.onchange = function() {
if (typeof(ref) != 'undefined') {
ref.location = this.options[ this.selectedIndex ].value;
} else {
ref = window.open(this.options[ this.selectedIndex ].value, '_blank');
}
};
的第二个参数应该是新创建的窗口(_blank
你的情况)的名称的参考。它用于HTML target
属性中,用于引用JS中的弹出窗口和来检查,如果window.open()
应该打开一个新的窗口/选项卡或重新加载现有的窗口。
要打开每个呼叫的新选项卡,请使用例如时间戳创建唯一的窗口名称。要在同一选项卡中打开所有新页面,请给窗口一个常数名称。
var isOpen = false;
if(!isOpen){
urlmenu.onchange = function() {
window.open(this.options[ this.selectedIndex ].value, '_blank');
};
isOpen = true;
}
试着用这个,希望我理解正确。
维护一个国旗呢? – 2014-09-19 07:48:47
你可以给旗帜更多的反馈吗? – Denoteone 2014-09-19 07:52:54
检查示例。 – 2014-09-19 09:45:17