2013-04-11 4 views
2

Итак, у меня есть код, который нужно выполнить только при загрузке содержимого веб-сайта, поэтому я помещаю его в загрузку окна, например:

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

Работает отлично в сафари и хроме (я нахожусь на mac osx 10.8), однако, похоже, не работает на firefox (19.0.2). Есть ли исправление или что-то, что нужно применить, чтобы заставить firefox работать с ним?

Он работает, если я очищаю кеш в firefox, но после этого не работает.

+0

Возможно, что-то испортило ваш код. Какая версия jQuery вы используете? Можете ли вы опубликовать часть своего кода? Вам необходимо устранить проблему, не считая сразу, что проблема заключается в методе '$ (window) .load' jQuery ... – silentw

+0

Попробуйте [эта скрипка] (http://jsfiddle.net/TwtFR/), чтобы узнать, оно работает. – silentw

+0

@silentw Я использую jQuery 1.9.1, я думаю, что скрипка не работает в firefox, так как я получаю предупреждающее сообщение до того, как изображение закончит загрузку. Это так странно, есть и проблема с опера. – Ilja

ответ

1

пытались ли вы window.onload = function(){}

+0

Просто попробовал, все еще ничего, эта же проблема появляется и в опера – Ilja

0

попробовать это. он работает во всех браузерах.

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

То же самое, но это работает в первый раз, когда я загружаю страницу, я предполагаю, что она кэшируется, а затем она не работает снова. – Ilja

0

просто сделать

my_function(){ 
    // some code 
} 

window.onload = My_function

1

Incase кто-нибудь еще найти эту страницу из Google ...

Для меня следующий делает работу на Firefox:

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

Но когда страница кэшируется, например, когда нажата кнопка «Назад», $(window).load() не вызывается снова. См. this для отчета об ошибке. Это ожидаемое поведение от Firefox, поэтому не ожидайте исправления.

2 вещи, чтобы исправить это либо остановить браузер кэшировать страницы при нажатии на кнопку назад, используя этот код (в дополнение к вашему $(window).load() код):

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

Или использовать другой JQuery событие вместо $(window).load():

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

, что «window.onpageshow» отлично работает с firefox для меня. Благодаря! – train

Смежные вопросы