• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

javascript - ios javascript 页面隐藏和卸载无法正常工作

[复制链接]
菜鸟教程小白 发表于 2022-12-13 04:02:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

当用户在 ios 上关闭标签或刷新页面时,我想显示一个弹出窗口,以防止他丢失他的数据。我已经看到 unload 已弃用,我必须使用 pagehide 事件,但似乎两者都不适用于 safari 甚至 chrome。

我的代码是:

window.addEventListener("pagehide", function (evt) {
    return confirm("Vous allez perdre toutes vos modifications");
}, false);

问题是即使我点击取消按钮也会刷新页面,并且如果我关闭选项卡也不会出现弹出窗口。

我也为 Chrome 移动设备尝试了此代码(桌面工作正常),但两者都不适用于他的浏览器

window.addEventListener("beforeunload", function (e) {
    if (closeWindow) {
        var message = 'Toutes vos modifications seront perdues';
        if (typeof evt == 'undefined') {
            evt = window.event;
        }
        if (evt) {
            evt.returnValue = message;
        }
        return message;
    }
}, false);



Best Answer-推荐答案


我的猜测是 unload 触发太晚而无法弹出消息。您有时可以通过使用 beforeunload 来解决这个问题,但它并未在 iOS Safari 中实现。 或许您可以通过在 unload 上向服务器发送 AJAX 请求来做一些棘手的事情(参见:How to detect unsaved data in form when user leaves the page?)。

我不确定它是否会有所帮助,但您也可以考虑通过将用户数据保存到 localstorage 或将其发送到您的服务器。

关于javascript - ios javascript 页面隐藏和卸载无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530440/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap