检查选项卡是否已在移动设备上打开

Check if tab is already open on mobile device?

本文关键字:移动 选项 是否 检查      更新时间:2023-09-26

我的网页上有一个按钮,如果我的访问者来自移动设备,它会打开一个新选项卡。

法典:

if (navigator.userAgent.match(/(iPhone|iPod|iPad|BlackBerry|Android|IEMobile)/)) {
    window.open(the_URL);
}

如何检查访问者是否已从此链接获得打开的选项卡,并将访问者带回打开的选项卡?

意义;我不想每次访问者单击此链接时都打开一个新选项卡。

任何想法如何实现这一目标?

更新

我在 Safari(桌面)中得到了这个工作

var newWin;
    if(newWin) {
        try {
            newWin.focus();                 
        }catch(e) {
            newWin = window.open(the_URL);
        }
    } else {
        newWin = window.open(the_URL);              
    }

但是,它不会切换到iOS Safari上的另一个选项卡。

更新 2

已尝试先关闭窗口,然后重新打开。但是.close似乎不起作用

    if(newWin) {
        setTimeout(newWin.close, 1000);
        try {
            newWin.close();
            newWin.focus();
        }catch(e) {
            newWin = window.open(the_URL);
        }
    } else {
        newWin = window.open(the_URL);              
    }

您是否尝试过使用窗口名称属性?

来自 MDN:

strWindowName

新窗口的字符串名称。可以使用名称 作为链接和表单的目标,使用 或元素。名称不应包含任何空格 字符。请注意,strWindowName 未指定 新窗口。

因此,请按如下方式修改您的代码

if (navigator.userAgent.match(/(iPhone|iPod|iPad|BlackBerry|Android|IEMobile)/)) {
    window.open(the_URL, 'newWindowName');
}