无法阻止window.onunload()中的刷新页面

时间:2014-12-30 07:23:24

标签: javascript jquery mobile-safari

我正在尝试显示提示消息,以防用户尝试刷新页面。 我使用window.onbeforeunload,它在其他浏览器上工作正常,但不是Mobile Safari。

我正在尝试使用window.onunload for Mobile Safari,我可以显示提示信息,但无法阻止刷新页面。

以下是代码

<script>
    var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false );
    if(iOS){

        window.onunload = function() {
            var test = confirm("Are you sure you want to leave this page");

            if(!test){
                return false;
            } 

        }
    }

我也试过了pagehide事件,可以显示提示但仍然无法阻止刷新页面 以下是代码

<script>

  window.addEventListener("pagehide", function(){
    var test = confirm("Are u sure you want to leave this page aaaaaaaaaaaaa");         
    if(!test){          
        return false;
    } 
  },false);

</script>

3 个答案:

答案 0 :(得分:0)

阅读此答案

Why is jQuery unload not working in chrome and safari?

在beforeunload中你不能有任何对话/配置。

jQuery(window).on('beforeunload', function() {
  return 'Are you sure you want to leave this page';
});

答案 1 :(得分:0)

截至本网站的一些信息:

https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/

onbeforeunload和onunload在safari中不起作用。所以我建议你尝试在safari浏览器中使用pagehide事件。请试着让我知道

http://www.w3schools.com/jquerymobile/event_pagehide.asp

答案 2 :(得分:-1)

试试这个

$(window).on('beforeunload', function() {
  return 'Your own message goes here...';
});