2

我正在开发一个快速登录页面,以访问同一服务器上的许多小型、移动优化的应用程序。基本上是仪表板模式。我想把它放在我的主屏幕上,这样我就可以在全屏模式下访问任何应用程序,而不是在工具栏繁重的移动 Safari 中。但是,当我单击一个链接时,它会将我从全屏模式带入 Safari——这正是我不想要的。

有没有办法(例如使用锚的target属性)在导航到不同页面时保持全屏模式?或者我应该把所有东西都扔进一个<iframe>

4

2 回答 2

5

您需要onclick使用一些 javascript 来拦截事件。例如,下面是iWebKitnoeffect应用于<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;
                };
            }
        }
    }
};
于 2011-03-24T12:26:43.143 回答
3

每当onclick移动版 Safari 中出现异常时,Safari 都会将其退出全屏模式。表单提交将保持全屏模式,无论POSTGET. 如果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');
    }
}
于 2011-03-25T22:20:56.087 回答