2016-07-22 45 views
2

我试图制作一个插件,用于在用户在Android或iOS设备上浏览时将普通链接转换为深层链接。因此,例如,它找到的链接,并通过这样的深层链接将其替换:如果未使用javascript安装应用程序,请创建回退URL

var facebookURL = $('[href*="facebook.com"]'); 
var facebookDeep = 'fb://profile/123456789'; 
$(facebookURL).attr('href', facebookDeep); 

当链接被点击并安装的Facebook,链接将打开Facebook的应用程序。但是,如果未安装Facebook,则单击该链接时不会发生任何事情。所以我想,我只想自动打开该网页的网址,如果有仍然是一个焦点帧1000毫秒后:

$($(facebookURL)).click(function(){ 
    setTimeout(function(){ 
    if ($(this).is(":focus")) { 
     location.href = 'https://facebook.com'; 
    } else { 
     console.log('Focus was lost'); 
    } 
    }, 1000); 
}); 

但这个记录焦点消失

任何想法的另一种方式,我可以做到这一点?或者如果有更简单的方法来创建回退。

+0

'$(本).blur()' “模糊” 指定的元素,它不不检查它是否没有焦点...返回值将始终为“truthy”...请参阅[this](https://api.jquery.com/blur/)以获取有关您的解释做 –

+0

好的,我更新了它。 – Ryan

回答

1

更改此:

if ($(this).is(":focus")) { 

这样:

if ($(facebookURL).is(":focus")) { 

更多信息:The 'this' problem

相关问题