在“选择将打开选项卡更改为新url”上.但是,如果在下一次选择更改时关闭了选项卡,该怎么办



如何检查用户是否关闭了我打开并发送到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');
   }
};

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

试试这个,这应该可以完成

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>

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

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

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

最新更新