javascript $(window).load在firefox中似乎不起作用

s6fujrry  于 2023-02-02  发布在  Java
关注(0)|答案(6)|浏览(180)

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

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

在safari和chrome上运行得很好(我用的是mac osx10.8),但是在firefox(19.0.2)上似乎不太好用,有没有什么修复程序或者需要应用的东西可以让firefox使用它?
如果我清除firefox中的缓存,它会工作,但在那之后就不工作了。

rjee0c15

rjee0c151#

以防有人从谷歌上找到这个页面...
对我来说,以下是在Firefox上工作:

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

但是当页面被缓存时,例如当点击后退按钮时,$(window).load()不会被再次调用。请参阅this的错误报告。这是Firefox的预期行为,所以不要期待修复。
解决这个问题的两件事是使用以下代码(除了$(window).load()代码之外)在点击后退按钮时停止浏览器缓存页面:

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

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

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

oaxa6hgo2#

你试过window.onload = function(){}

9bfwbjaz

9bfwbjaz3#

如果使用jQuery,请使用jQuery事件:

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

ukdjmx9f4#

只是简单地做

my_function(){
    // some code
}

窗口.onload =我的函数

wydwbb8l

wydwbb8l5#

试试这个,在所有浏览器都能用.

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

axkjgtzd6#

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

// 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');
    }
});

相关问题