完全阻止iOS Web应用程序在移动Safari中打开链接,即使包含参数的链接也是如此

时间:2014-12-17 16:14:56

标签: ios parameters mobile-safari iphone-standalone-web-app

我找到了多种解决方案来阻止iOS网络应用在移动版Safari中打开普通链接,不幸的是它们不适用于包含参数的链接,例如

href="index.php?s=example"

这些仍然在移动版Safari中打开。

到目前为止我找到的普通链接的最短解决方案可以找到here at stackoverflow。也许有人可以修改那个脚本?

1 个答案:

答案 0 :(得分:2)

尝试4岁github gist。我用它,它的工作原理。 您可以bower使用它:

  

bower install --save iosweblinks

您可能在页面上有javascript错误,处理程序不会调用吗?

P.S。我修改过的脚本可以防止在standalone模式下在Safari中打开链接:

(function (standalone) {

    if (!standalone) {
        return;
    }

    document.addEventListener('click', function (e) {
        var element = e.target,
            href = '';

        while (!/^(a|html)$/i.test(element.nodeName)) {
            element = element.parentNode;
        }

        if (element.getAttribute) {
            href = element.getAttribute('href');

            if ('' !== href && '#' !== href && null !== href && (!element.protocol || element.protocol !== 'tel:')) {
                e.preventDefault();
                window.location = element.href;
            }
        }
    }, false);

}(window.navigator.standalone));