2013-04-20 60 views
1

此腳本可防止在Mobile Safari中打開鏈接。這是當iOS應用程序處於應用程序模式(主屏幕書籤)時。獨立的Web應用程序鏈接腳本 - 阻止它附加具有特定類的鏈接?

gist.github.com/1042026

if(("standalone" in window.navigator) && window.navigator.standalone){ 

    // If you want to prevent remote links in standalone web apps opening Mobile Safari, change 'remotes' to true 
    var noddy, remotes = false; 

    document.addEventListener('click', function(event) { 

     noddy = event.target; 

     // Bubble up until we hit link or top HTML element. Warning: BODY element is not compulsory so better to stop on HTML 
     while(noddy.nodeName !== "A" && noddy.nodeName !== "HTML") { 
      noddy = noddy.parentNode; 
     } 

     if('href' in noddy && noddy.href.indexOf('http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)) 
     { 
      event.preventDefault(); 
      document.location.href = noddy.href; 
     } 

    },false); 
} 

我的問題是你如何獲得上述這個腳本忽略了一類鏈接?

因此,例如我有a.lightbox - 並且此鏈接在使用www.photoswipe.com jquery插件的lightbox中打開並顯示圖像。

但是,當我使用腳本它殺死燈箱啓動,它只是打開自己的形象。但如果我上面的腳本,photoswipe燈箱工作正常。

有沒有人有一些建議或者幫助更改這個腳本忽略這些鏈接a.lightbox

感謝 喬希

回答

1

如果你使用jQuery,你應該能夠只需添加&& !$(noddy).hasClass('lightbox')您若測試。

+0

很好用!已經發布了我的代碼以供參考。多謝,夥計 – Joshc 2013-04-22 09:18:22

相關問題