我的网页上有一个按钮,如果访问者来自移动设备,则该按钮会打开一个新标签。

码:

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:



因此,如下修改您的代码

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

10-04 15:49