我们可以控制浏览器标签中的“加载”图标吗?

时间:2011-11-15 15:44:18

标签: jquery browser

我通过jQuery进行了一系列的AJAX调用。当正在执行ajax调用时,没有可视指示。通常,如果您单击链接或其他一些非ajax加载,浏览器会在选项卡中显示一个小加载图标。

有没有办法告诉浏览器在标签中显示这个小图标? (这些电话大约有30个,所以我希望避免修改每个电话。)

5 个答案:

答案 0 :(得分:10)

不,你不能告诉浏览器这样的事情。

但是你可以做自己的装载指示器。在标记中加入隐藏元素,然后使用ajaxStartajaxStop事件来控制其可见性:

$("#loading_animation").bind({
    ajaxStart: function() { $(this).show(); },
    ajaxStop: function() { $(this).hide(); }
});
当没有其他人正在运行ajax请求时,jQuery会触发

ajaxStart;当ajax请求完成且没有其他人在运行时会触发ajaxStop

答案 1 :(得分:7)

没有

但你可以修改光标的css。

body {
   cursor:wait;
}

答案 2 :(得分:3)

你绝对可以。请参阅此帖子:Changing website favicon dynamically

只需创建加载图形的动画图标,并在加载时将图标更改为该图标。

问题是您没有与特定浏览器使用的完全相同的加载图形,但我认为该信息将得到有效传达。

答案 3 :(得分:1)

在进入任何代码之前,我只想说这是一个丑陋的解决方案,但它确实对我有用。

我所做的是在网站上放置一个iframe。然后我用css中的 display:none 隐藏它。

然后在每个ajax调用中,我用新页面重新加载iframe。这会导致浏览器在标签栏中显示加载。

我知道这不是一个漂亮的解决方案,它有一些缺陷。如果iframe的加载速度比ajax快,则无法控制加载的持续时间。但我只是把它扔出去了。也许其他人可以建立这个概念。

答案 4 :(得分:0)

这是另一种选择 在进行通话之前,您可以显示图像,然后在功能中(不是在通话后)再次隐藏它。