我正在构建一个将始终在 iPad 上查看的小型网站,我正在使用元标记:
<meta name="apple-mobile-web-app-capable" content="yes">
并将站点添加到主页以强制 iPad 将其视为应用程序。这消除了地址栏和后退按钮等......
我有一个框架集内的站点,最初该站点将加载一个index.htm
登录页面,该页面具有指向包含<frameset>
's 和<frame>
's 的其他页面的链接。每个页面都有一个导航框架和一个用于显示内容的框架。第二个框架的内容将是一个外部网页。
我遇到了一个问题,在应用程序模式下启动站点并单击登录页面中的链接会导致在 safari 中打开一个新窗口 - 本质上它会脱离应用程序上下文并加载 safari,我通过以下方式解决了这个问题:
<script type="text/javascript">
$(document).ready(function () {
$('a').click(function (e) {
window.location = $(this).attr('href');
e.preventDefault();
});
});
</script>
这使我网站下的所有链接都加载在“应用程序”中。
现在,问题来了。
加载外部网页的框架显然会包含链接,当单击框架中的这些链接时,这会启动 safari 并脱离应用程序上下文,并且应用程序会恢复到以前的行为。
有没有办法确保网站上的所有链接都在“应用程序”中打开,即使是那些包含在<frame>
元素中的链接?
这里的总体目标是防止用户跳出应用程序并在网上做他们喜欢做的任何事情