1

このスクリプトは、Mobile Safari でリンクが開かないようにします。これは、Web アプリが iOS のアプリ モードの場合 (ホーム画面のブックマーク) です。

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 プラグインを使用してライトボックスに画像が表示されます。

しかし、スクリプトを使用すると、ライトボックスの起動が停止し、画像が勝手に開きます。しかし、上記のスクリプトを使用すると、フォトスワイプ ライトボックスは正常に動作します。

これらのリンクを無視するようにこのスクリプトを修正したり、提案したりした人はいますかa.lightbox

ありがとうジョシュ

4

1 に答える 1

1

&& !$(noddy).hasClass('lightbox')jQuery を使用している場合は、if テストに追加するだけでよいはずです。

于 2013-04-20T12:58:07.507 に答える