在“;选择“;只更新一次新选项卡中打开的url

On "Select" update open url in new tab... only once

本文关键字:选项 url 新选项 更新 一次 选择      更新时间:2023-09-26

当用户更改选择下拉列表的值时,我正在使用javascript将url加载到_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;
}

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