我在我的 application.html.erb 中使用以下 javascript 以允许我的 Web 应用程序在从 Safari 保存到主屏幕时表现得像 iOS 应用程序。此脚本可防止应用程序中的链接在 Safari 中打开:
<script>(function(a,b,c){if(c in b&&b[c]){var d,e=a.location,f=/^(a|html)$/i;a.addEventListener("click",function(a){d=a.target;while(!f.test(d.nodeName))d=d.parentNode;"href"in d&&(d.href.indexOf("http")||~d.href.indexOf(e.host))&&(a.preventDefault(),e.href=d.href)},!1)}})(document,window.navigator,"standalone")</script>
它工作得很好,当应用程序保存到我的主屏幕时,所有导航都按预期工作,除了“退出”按钮,它会出错:
“您要查找的页面不存在。您可能输入了错误的地址或页面可能已移动。”
当我从 Safari 而不是主屏幕访问 Web 应用程序时,不会发生这种情况,然后我点击“退出”按钮 - 它按预期运行并将用户退出(通过“删除”方法破坏会话)。
任何想法 javascript 的哪一部分可能导致此错误或我如何解决此问题将不胜感激。