Обновлен контент для прослушивания JavaScript - PullRequest
0 голосов
/ 05 мая 2011

Поскольку сегодня широко используется ajax, многие страницы загружаются асинхронно.Есть ли способ узнать, что что-то загружено после загрузки всех DOM?Например, загружается вся страница, но некоторые изображения создаются / загружаются new image(). Как я могу узнать, что такого рода изменения произошли на веб-странице с помощью javascript?Любое событие может быть полезным?

Ответы [ 3 ]

3 голосов
/ 05 мая 2011

События мутаций, как уже упоминалось, должны помочь. Если вы используете jQuery, вы можете сделать что-то подобное с мутационным событием DOMSubtreeModified:

$(document).ready(function () {
    $('body').bind('DOMSubtreeModified', 'test', function () {
        alert('something changed');
    });

    $('#some-button').click(function () {
        $('body').append('<h4>added content</h4>');
    });
});

При любых изменениях содержимого появится окно с предупреждением. В этом примере, когда нажимается кнопка с идентификатором «some-button», содержимое добавляется в тело и отображается предупреждение. События мутации предлагают более специфический тип событий, который я показал, вероятно, самый общий.

1 голос
/ 05 мая 2011

Ниже приведен фрагмент кода, который может помочь: -

<script>
    var img = new Image();
    img.src = "http://static.yourwebsite.com/filename.ext";
    img.onreadystatechange = function(){
        if((img.readyState == "complete") || (img.readyState == 4)) {
            alert("Image loaded dynamically!");
        }
    };
</script>

Вы должны изменить источник изображения.Событие onreadystatechange поможет вам узнать, загружено изображение или нет.readyState должно быть complete или 4 как отправлено AJAX, если я не ошибаюсь при получении страницы.

ИЛИ ВЫ МОЖЕТЕ ПРОЙТИ С

<script>
    var img = new Image();
    img.src = "http://static.yourwebsite.com/filename.ext";
    img.onload = function(){
        alert("Image loaded dynamically!");
    };
</script>

КРЕДИТ ДЛЯВЫШЕ КОД: http://www.techrepublic.com/article/preloading-and-the-javascript-image-object/5214317

В этом фрагменте кода мы используем событие onload для запуска загрузки изображения

Надеюсь, это поможет.Отметьте это как ответ, если это поможет!: D

Ура

1 голос
/ 05 мая 2011

Есть несколько событий мутации: http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-MutationEvent

onsubtreemodified
onnodeinserted
onnoderemoved
и т. Д.
Посмотрите здесь: https://developer.mozilla.org/en/DOM_Events

...