$ (window) .load Chrome, проблема Safari - PullRequest
       8

$ (window) .load Chrome, проблема Safari

4 голосов
/ 21 сентября 2011

Хорошо, вот проблема

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

и другие варианты этого просто не работают в chrom и safri. FF, IE работают нормально, я ищу, но не нашел никакого рабочего решения, кто-то знает, как проверить в chrome, safari, когда страница закончит загрузку?

Ответы [ 6 ]

6 голосов
/ 21 сентября 2011

Вы можете попробовать один из приведенных ниже кодов, если хотите выполнить что-то при загрузке страницы.

$(document).ready(function(){
    //Page loaded
});

OR

$(function(){
    //Page loaded
});

РЕДАКТИРОВАТЬ: Попробуйте это

window.onload = function(){
   //Page loaded
};

Или, если вы хотите использовать jQuery, попробуйте это

$(window).bind('load', function(){
   //Page loaded
});
1 голос
/ 22 ноября 2013

У меня есть страница, которая прекрасно загружается в FF, но не работает в Chrome, потому что у меня есть 2 сценария, использующих $ (window) .load (function (), и кажется, что 2nd выполняется до появления изображений.

Первый скрипт проверяет наличие отсутствующих изображений и подставляет изображение ошибки:

   $(window).load(function() {
    $("img").each(function(){
      var image = $(this);            
      if(image.context.naturalWidth == 0 ||
      image.readyState == 'uninitialized'){   
         $(image).unbind("error").attr(
             "src", "assets/img/image_missing.jpg"
         );
      }
 });
});  

Вторая функция выравнивает элементы строки в случае изменения размера окна (это адаптивная страница):

$(window).load(function() {
        columnConform();
});

Когда я использую отладку для этого в Chrome, выполняется первая функция, но при выполнении 2-го изображения отсутствующие изображения не отображаются. Они появляются только после завершения 2-й функции.

Когда страница загружается впервые, изображение для "Socketry" не найдено, поэтому Spanners / Metric / Imp отображается сразу под той же строкой.

2-й сценарий перестраивает строки, предполагая, что этоПравильно, однако, когда отображается «Отсутствует изображение», это приводит к тому, что гаечные ключи попадают в следующий ряд.

«Отсутствие изображения» должно отображаться доw выравнивание, в этом случае строки будут выровнены правильно, как в Firefox.

* Я бы опубликовал снимки экрана, но у меня нет 10 репутации - ggrrrhh!Иногда картинка стоит 1000 слов ... *

Думаю, мне лучше описать страницу словами ...

У меня есть 13 изображений, отображаемых 6 подряд, поэтому 2полные ряды и 1 на 3-й строке.6-е изображение не может быть найдено, поэтому 7-е отображается прямо под символом отсутствующего изображения в верхней строке, а не как 1-е изображение во 2-й строке.2-й сценарий выравнивает строки, предполагая, что 7-е изображение находится в верхней строке, а затем 1-й сценарий заставляет изображение «Отсутствие изображения» появиться, что заставляет 7-е изображение перейти во 2-ю строку самостоятельно.Второй скрипт необходимо выполнить после загрузки всех изображений.Надеюсь, что это имеет смысл.

1 голос
/ 21 сентября 2011

Оба window.load и document.ready работают для меня, вот скрипка

0 голосов
/ 09 июня 2014

Пример: запустить функцию, когда страница полностью загружена, включая графику.

  $( window ).load(function() {
         // Run code
         });

Пример: добавить класс bigImg ко всем изображениям с высотой более 100 при каждой загрузке изображения.

$( "img.userIcon" ).load(function() {
   if ( $( this ).height() > 100) {
     $( this ).addClass( "bigImg" );
   }
});

Для получения дополнительной информации см. http://api.jquery.com/load-event/.

0 голосов
/ 22 февраля 2013

Это может произойти в некоторых браузерах (я испытал это в Opera и Chrome) при работе на localhost.Кажется, что событие «ready» сработает до того, как у javascript появится возможность добавить прослушиватель, так что $ (window) .ready никогда не сработает.

0 голосов
/ 17 мая 2012

Не думаю, что это ответит на ваш вопрос, но в моем случае load() не работал только в Chrome, потому что я пытался загрузить в <form>, который был внутри другого <form>. Хром полностью игнорирует существование внутреннего <form>.

Попробуйте загрузить несжатую версию jQuery и отладить ее.

...