菜鸟教程小白 发表于 2022-12-13 04:02:07

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


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

<p>我的代码是:</p>

<pre><code>window.addEventListener(&#34;pagehide&#34;, function (evt) {
    return confirm(&#34;Vous allez perdre toutes vos modifications&#34;);
}, false);
</code></pre>

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

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

<pre><code>window.addEventListener(&#34;beforeunload&#34;, function (e) {
    if (closeWindow) {
      var message = &#39;Toutes vos modifications seront perdues&#39;;
      if (typeof evt == &#39;undefined&#39;) {
            evt = window.event;
      }
      if (evt) {
            evt.returnValue = message;
      }
      return message;
    }
}, false);
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我的猜测是 <code>unload</code> 触发太晚而无法弹出消息。您有时可以通过使用 <code>beforeunload</code> 来解决这个问题,但它并未在 iOS Safari 中实现。 :( 或许您可以通过在 <code>unload</code> 上向服务器发送 AJAX 请求来做一些棘手的事情(参见:<a href="https://stackoverflow.com/questions/8259090/how-to-detect-unsaved-data-in-form-when-user-leaves-the-page" rel="noreferrer noopener nofollow">How to detect unsaved data in form when user leaves the page?</a>)。</p>

<p>我不确定它是否会有所帮助,但您也可以考虑通过将用户数据保存到 <code>localstorage</code> 或将其发送到您的服务器。</p></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - ios javascript 页面隐藏和卸载无法正常工作,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/27530440/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/27530440/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - ios javascript 页面隐藏和卸载无法正常工作