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

时间:2014-11-20 08:30:56

标签: javascript

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

代码:

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);              
    }

1 个答案:

答案 0 :(得分:0)

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

来自MDN:

  

strWindowName

     

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

所以修改你的代码如下

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