2016-07-22 44 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

相關問題