【问题标题】:on Select change open tab to new url. But what if the tab is closed on the next select change?在选择将打开选项卡更改为新网址。但是,如果选项卡在下一次选择更改时关闭怎么办?
【发布时间】:2014-11-14 05:17:16
【问题描述】:

如何检查用户是否关闭了我打开的浏览器选项卡并发送到一个 url?

下面是我的代码。当用户更改选择下拉列表的值时,它会检查浏览器窗口是否已打开,如果打开则重新加载 url,如果没有打开所选 url 的选项卡。

但是如果用户更改了选择值并打开了一个新选项卡,那么他们在下一次选择时将其关闭,更改新选项卡将不会打开。

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

如果您有任何问题,请告诉我。

【问题讨论】:

  • 为什么不以这种方式定位标签,如果它存在,它会改变,否则它会打开

标签: javascript jquery html


【解决方案1】:

试试这个,这应该可以解决问题

urlmenu.onchange = function() {

    var ref = window.open( this.options[ this.selectedIndex ].value, 'somename', '');

};

不要使用“_blank”,而是指定选项卡的名称,这样如果它已经打开,它只会刷新同一个选项卡,而不是创建新的。

使用 '_blank' 可以发出浏览器命令来打开另一个选项卡(或指定 hiehgt 的窗口) 检查下面的示例

<button onclick="myFunction()">Try it</button>

<script>
var windowOpen = null;
function myFunction() {

    windowOpen  = window.open("http://stackoverflow.com", "somename", "");

}
</script>

【讨论】:

    【解决方案2】:

    为您的窗口设置一个名称:

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

    如果没有具有此名称的窗口,则浏览器同时创建一个新窗口。如果已经存在,浏览器会重新使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多