我正在开发一个快速登录页面,以访问同一服务器上的许多小型、移动优化的应用程序。基本上是仪表板模式。我想把它放在我的主屏幕上,这样我就可以在全屏模式下访问任何应用程序,而不是在工具栏繁重的移动 Safari 中。但是,当我单击一个链接时,它会将我从全屏模式带入 Safari——这正是我不想要的。
有没有办法(例如使用锚的target
属性)在导航到不同页面时保持全屏模式?或者我应该把所有东西都扔进一个<iframe>
?
我正在开发一个快速登录页面,以访问同一服务器上的许多小型、移动优化的应用程序。基本上是仪表板模式。我想把它放在我的主屏幕上,这样我就可以在全屏模式下访问任何应用程序,而不是在工具栏繁重的移动 Safari 中。但是,当我单击一个链接时,它会将我从全屏模式带入 Safari——这正是我不想要的。
有没有办法(例如使用锚的target
属性)在导航到不同页面时保持全屏模式?或者我应该把所有东西都扔进一个<iframe>
?
您需要onclick
使用一些 javascript 来拦截事件。例如,下面是iWebKit对noeffect
应用于<a>
标签的 css 类所做的事情:
window.onload = function () {
function fullscreen() {
var a = document.getElementsByTagName("a");
for (var i = 0; i < a.length;i++) {
if (a[i].className.match("noeffect")) {
// Does nothing
}
else {
a[i].onclick = function () {
window.location = this.getAttribute("href");
return false;
};
}
}
}
};
每当onclick
移动版 Safari 中出现异常时,Safari 都会将其退出全屏模式。表单提交将保持全屏模式,无论POST
是GET
. 如果window.location
通过 javascript 设置,它也将保持全屏模式。
我更喜欢委托而不是在每个锚点上设置一个事件处理程序。这是一个 jQuery 示例:
$(window).click(handleClick);
function handleClick(e) {
var target = $(e.target).closest('a');
if( target ) {
e.preventDefault();
window.location = target.attr('href');
}
}