Javascript IOS(Iphone)上的onbeforeunload问题

Javascript IOS(Iphone)上的onbeforeunload问题,javascript,jquery,ios,dom,Javascript,Jquery,Ios,Dom,我有一个关于这个主体的页面: <body> <div class="loading"> <div class="loader"></div> </div> <div class="site-content"> [... all the content] </div> </body> 问题是spinner可以在台式机PC和

我有一个关于这个主体的页面:

<body>
    <div class="loading">
            <div class="loader"></div>
    </div>
    <div class="site-content">
            [... all the content]
    </div>
</body>
问题是spinner可以在台式机PC和mac上工作,在safari、firefox、chrome等平台上工作

但它在我的Iphone上不起作用

另一方面,我在ajax中使用微调器进行调用:

var $loading = $('.loading').hide();
$(document)
    .ajaxStart(function () {
        $loading.show();
    })
    .ajaxStop(function () {
        $loading.hide();
    });
但这一次,旋转器在移动设备(iphone)中工作

如何使微调器在我的所有页面中适用于移动设备(使用前面显示的代码)

我知道问题出在
onbeforeunload
事件

提前谢谢

EDIT1:为了回答josh的评论,我甚至尝试了以下方法:

var isOnIOS = navigator.userAgent.match(/iPad/i)|| navigator.userAgent.match(/iPhone/i);
var eventNameHide = isOnIOS ? "pagehide" : "beforeunload";
var eventNameShow = isOnIOS ? "pageshow" : "load";

     $(window).on(eventNameShow, function(){
            $(".loading").hide();
            $(".site-content").show();
            window.addEventListener(eventNameHide, function(e) {
                $(".site-content").hide();
                $(".loading").show();    
            });
        });

iOS Safari上不会发生beforeunload。没有可将操作绑定到的事件。

beforeunload在iOS Safari上不发生。没有可将操作绑定到的事件。

您是否尝试过较新的等价物,
addEventListener(“beforeunload”,unLoader)
?它是本机等价物,jQuery早于它。所以,是的,我会说这是一个“新的等价物”。没有人知道吗?作为参考,即使是微软在这里也有这样的问题:iphone上没有微调器,而桌面上有微调器……您是否尝试过新的等价物,
addEventListener('beforeunload',unLoader)
?它是本机等价物,jQuery早于它。所以,是的,我会说这是一个“新的等价物”。没有人知道吗?作为参考,即使是微软也有这个问题:iphone上没有微调器,而桌面上有微调器。。。
var isOnIOS = navigator.userAgent.match(/iPad/i)|| navigator.userAgent.match(/iPhone/i);
var eventNameHide = isOnIOS ? "pagehide" : "beforeunload";
var eventNameShow = isOnIOS ? "pageshow" : "load";

     $(window).on(eventNameShow, function(){
            $(".loading").hide();
            $(".site-content").show();
            window.addEventListener(eventNameHide, function(e) {
                $(".site-content").hide();
                $(".loading").show();    
            });
        });