完全防止 iOS Web 应用在移动 Safari 中打开链接,即使链接包含参数
Posted
技术标签:
【中文标题】完全防止 iOS Web 应用在移动 Safari 中打开链接,即使链接包含参数【英文标题】:Completely prevent iOS web app from opening link in mobile Safari, even with links containing parameters 【发布时间】:2014-12-17 16:14:56 【问题描述】:我找到了多种解决方案来阻止 ios 网络应用在移动 Safari 中打开正常链接,不幸的是它们不适用于包含参数的链接,例如
href="index.php?s=example"
这些仍然在移动 Safari 中打开。
到目前为止我发现的正常链接的最短解决方案可以找到here at ***。也许有人可以修改那个脚本?
【问题讨论】:
Webapp for iphone switches from home screen to Safari when url parameters are used的可能重复 【参考方案1】:试试 4 岁的 github gist。我使用它并且它有效。
您可以通过bower
使用它:
凉亭安装 --save iosweblinks
可能是您在页面上有 javascript 错误并且处理程序没有调用?
附:我修改后的脚本,用于防止在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));
【讨论】:
以上是关于完全防止 iOS Web 应用在移动 Safari 中打开链接,即使链接包含参数的主要内容,如果未能解决你的问题,请参考以下文章
MobileSafari(iOS Safari):有没有办法防止水平/垂直滚动“捕捉”?
什么控制从 Web Clip 启动的 iOS Web 应用程序是不是在移动 Safari 中打开链接?