美元(窗口).加载似乎不能在firefox中工作

$(window).load doesn't seem to be working in firefox

本文关键字:不能 firefox 工作 窗口 加载 美元      更新时间:2023-09-26

我有一些代码只需要在网站内容加载时执行所以我把它放在窗口加载中,像这样:

$(window).load(function() { 
   //some stuff happens
});

在safari和chrome(我在mac osx 10.8)中工作得很好,但是似乎不能在firefox(19.0.2)上工作。是否有一个修复或什么东西需要应用,以使firefox与它一起工作?

如果我在firefox中清除缓存,它可以工作,但在此之后就不工作了

以防有人从Google找到这个页面…

对我来说,以下内容在Firefox上是可行的:

$(window).load(function() {
    //Do something
});

但是当页面被缓存时,例如当单击后退按钮时,$(window).load()不会再次被调用。查看bug报告。这是Firefox的预期行为,所以不要期待修复。

解决这个问题的2件事是使用此代码(除了您的$(window).load()代码)单击后退按钮时阻止浏览器缓存页面:

window.onunload = function(){}; //This forces bfcache to not cache the page

或者使用其他jQuery事件代替$(window).load():

window.onpageshow = function () {
    //Do something
};

您试过window.onload = function(){}了吗

如果您使用jQuery。使用jQuery事件:

$(document).ready(function(){
    // YOUR CODE
});

直接做

my_function(){
    // some code
}

窗口。Onload = my_function

试试这个。它在所有浏览器中都可以工作。

<script type="text/javascript">
window.onload=function(){
    alert('do something');  
}
</script>

这是我的修复,所以我不需要重写很多代码,主要是当你使用匿名函数…

// this must be at the very top
window.loaded = false;
window.addEventListener( 'load', function(){
    window.loaded = true;
});
// ...
jQuery(document).ready(function($){
    // add `loaded` to the events
    $(window).on('load loaded resize scroll', function(){
        // ...
    });
    // this must be at the very bottom
    if( window.loaded ){
        $(window).trigger('loaded');
        $(document).trigger('loaded');
    }
});