防止全屏网页应用中的所有链接在Safari中打开?

时间:2013-11-05 08:06:40

标签: colorbox

我的脚本会阻止全屏独立网络应用中的链接在Safari中打开,这很好用,但是我有一个彩盒框脚本可以在iframe中打开一个灯箱,或者应该这样!

现在它以全屏方式打开iframe脚本,而不是在灯箱中打开iframe。

所以我的问题是,如何更改脚本以使其适用于除class =“iframe”之外的所有链接? 这样,具有类iframe的那个就可以了。

(function(document,navigator,standalone) {
    // prevents links from apps from oppening in mobile safari
    // this javascript must be the first script in your <head>
    if ((standalone in navigator) && navigator[standalone]) {


        var curnode, location=document.location, stop=/^(a|html)$/i;
        document.addEventListener('click', function(e) {
            curnode=e.target;
            while (!(stop).test(curnode.nodeName)) {
                curnode=curnode.parentNode;
            }

            // Condidions to do this only on links to your own app
            // if you want all links, use if('href' in curnode) instead.
            if('href' in curnode && ( curnode.href.indexOf('http') || ~curnode.href.indexOf(location.host) ) ) {
                e.preventDefault();
                location.href = curnode.href;


            }
        },false);

    }

})(document,window.navigator,'standalone');

非常感谢!

1 个答案:

答案 0 :(得分:0)

解决了,我找到了答案。 我不得不改变这个

if('href' in curnode && ( curnode.href.indexOf('http') || ~curnode.href.indexOf(location.host) ) ) {

到此。

if('href' in curnode && ( curnode.href.indexOf('http') || ~curnode.href.indexOf(location.host) )&& !$(curnode).hasClass('iframe') ) {