首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Safari上加载新页面之前,Jquery ()不能工作

在Safari上加载新页面之前,Jquery ()不能工作
EN

Stack Overflow用户
提问于 2017-01-18 15:14:42
回答 2查看 712关注 0票数 1

在页面准备显示之前,我的站点必须做大量的工作(从其他站点获取数据)。所以,当用户点击一个链接时,我会显示一个旋转轮gif,然后当页面准备就绪时,它就被加载了。

这在safari浏览器上不起作用(但在Firefox上起作用):轮子根本不显示。用户单击链接时,当前页面仍可在等待时显示,但在没有旋转轮的情况下:

Jquery代码:

代码语言:javascript
复制
$( function() {
    $( '.show-spinning' ).on( 'click', function( e ) {
        $(".spinning-wheel").show()
    } );
} );

Css代码:

代码语言:javascript
复制
.spinning-wheel {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    width: 64px;
    height: 64px;
    background: url("../images/spinning.gif");
}

容器html代码:

代码语言:javascript
复制
<div class="spinning-wheel"> </div>

应该触发容器的.show()的链接代码:

代码语言:javascript
复制
<a href="/otherpage" class="show-spinning">Link to other page</a>

例如,当我使用以下方法进行测试时,这是可行的:

代码语言:javascript
复制
<a href="#" class="show-spinning">test</a>

只有当链接是真实的并发送到另一个页面时,.show()才会在safari上什么也不做。

有什么办法或其他方法让这项工作进行狩猎吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-18 15:22:14

我不知道safari的来龙去脉,但似乎一旦页面刷新周期开始,它就没有必要继续处理即将卸载的页面上的javascript。如果是这样的话,它是有道理的,因为新的页面可能随时都会出现,而且你不会希望浏览器卡在一个长期运行的脚本上,而这个脚本本来应该会消失.

我认为您的选项是使用href='#'链接并将重定向包含到单击处理程序中的新页面(在显示旋转器之后),或者转向SPA类型方法。

票数 2
EN

Stack Overflow用户

发布于 2017-01-18 15:28:54

我认为您可以取消链接单击,显示您的纺纱轮,然后在javascript中进行重定向。

代码语言:javascript
复制
$( function() {
    $( '.show-spinning' ).on( 'click', function( e ) {
        e.preventDefault();
        $(".spinning-wheel").show()
        window.location.href = $(this).attr('href');
    } );
} );

会不会是css问题?无论是固定位置在safari中的行为不同,还是.show()没有添加display: block;

也许给你的旋转器添加一个类

代码语言:javascript
复制
.spinning-wheel.hidden {
    display:none;
}

.spinning-wheel{
    display: block;
}

然后单击删除hidden

代码语言:javascript
复制
$( function() {
    $( '.show-spinning' ).on( 'click', function( e ) {
        e.preventDefault();
        $(".spinning-wheel").removeClass('hidden');
        window.location.href = $(this).attr('href');
    } );
} );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41722957

复制
相关文章

相似问题

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