在 iOS 全屏 Web 应用程序中使用链接

发布于 2024-10-18 00:08:56 字数 269 浏览 5 评论 0原文

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

有没有办法(例如使用锚点的 target 属性)在导航到不同页面时保持全屏模式?或者我应该将所有内容都放入 中?

I'm working on a quick landing page to access a number of small, mobile-optimized applications on the same server. Basically the Dashboard pattern. I want to have it on my home screen so that I can get to any of the apps in fullscreen mode rather than in toolbar-heavy mobile Safari. However, when I click on a link, it takes me out of the fullscreen mode into Safari -- exactly what I don't want.

Is there a way (e.g. using an anchor's target attribute) to stay in the fullscreen mode while navigating to a different page? Or should I just throw everything into an <iframe>?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨小墨 2024-10-25 00:08:56

您需要使用一些 JavaScript 来拦截 onclick 事件。例如,以下是 iWebKitnoeffect 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;
                };
            }
        }
    }
};

You'll need to intercept the onclick event using some javascript. For example, here's what iWebKit does with the noeffect css class applied to an <a> tag:

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;
                };
            }
        }
    }
};
罪歌 2024-10-25 00:08:56

每当移动 Safari 中发生 onclick 时,Safari 都会将其退出全屏模式。表单提交将保持全屏模式,无论是 POST 还是 GET。如果通过 javascript 设置 window.location,它也将保持全屏模式。

我更喜欢委托,而不是在每个锚点上设置事件处理程序。这是一个 jQuery 示例:

$(window).click(handleClick);

function handleClick(e) {
    var target = $(e.target).closest('a');
    if( target ) {
        e.preventDefault();
        window.location = target.attr('href');
    }
}

Whenever an onclick occurs in mobile Safari, Safari will take it out of fullscreen mode. Form submissions will remain in fullscreen mode, whether POST or GET. If window.location is set via javascript, it will also remain in fullscreen mode.

I prefer delegation to setting an event handler on each anchor. Here's a jQuery example:

$(window).click(handleClick);

function handleClick(e) {
    var target = $(e.target).closest('a');
    if( target ) {
        e.preventDefault();
        window.location = target.attr('href');
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文