如何检查用户是否关闭了我打开并发送到网址的浏览器标签?
以下是我的代码。当用户更改选择下拉列表的值时,它会检查浏览器窗口是否已打开,如果是,则重新加载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');
}
};
如果您有任何问题,请与我们联系。
答案 0 :(得分:1)
为您的窗口设置名称:
urlmenu.onchange = function() {
window.open( this.options[ this.selectedIndex ].value, 'urlmenutab');
};
如果没有此名称的窗口,则在创建新浏览器时。如果已经存在,浏览器将重复使用它。
答案 1 :(得分: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>