首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在移动设备按下“返回”键后运行javascript

在移动设备按下“返回”键后运行javascript
EN

Stack Overflow用户
提问于 2012-12-27 00:10:20
回答 1查看 241关注 0票数 6

我们有一个移动站点( MVC风格的ASP.NET),它可以显示全屏的HTML幻灯片。

为了显示它,我们在mobileHTMLMovie视图上运行代码,如下所示:

代码语言:javascript
复制
$( function() {
    $(document).bind('pageinit', function() {
    $("header").hide();
    $(".subHeader").hide();
    $(".subHeaderAccent").hide();
    $("footer").hide();
    $(".ui-content").css("width", "100%").css("height", "100%").css("margin","0").css("background-color", "#000");
    });
});

我们看到的问题是,当用户按下“后退”按钮(被限制在硬件控件上,因为这段代码禁用了所有包装元素,包括我们的HTML移动按钮),这些元素仍然是隐藏的。

我一直无法找到一种方法来在他们登陆的页面上运行“反转”代码(显示而不是隐藏,从“.ui-content”中删除样式属性)。他们登陆的页面不会运行document.ready,电影页面也不会运行'onunload‘或'onbeforeunload',我在网上找到的其他建议(’.live‘在'data-rel=back’元素上的点击)也不起作用。

有人有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2012-12-30 01:28:52

您是否可以尝试使用History对象并绑定到popstate事件?基本上,当幻灯片显示时,您将推入一个新的状态,然后当用户按下back时,可能会触发弹出。

示例:

代码语言:javascript
复制
$(function() {
    $(document).bind('pageinit', function() {
        $("header").hide();
        $(".subHeader").hide();
        $(".subHeaderAccent").hide();
        $("footer").hide();
        $(".ui-content").css("width", "100%").css("height", "100%").css("margin","0").css("background-color", "#000");

        window.history.replaceState("slideshow", "Slideshow", "slideshow");
    });

    window.addEventListener('onpopstate', function(event) {
        if (event.state === "slideshow") {
            //Close the slideshow
        }
    }
});

我不确定页面的流程是什么,但您可以根据幻灯片的启动方式使用replaceStatepushState

资源

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14043096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档