Использование .live () для события iFrame.load ()? - PullRequest
4 голосов
/ 05 августа 2011

Я знаю, что iFrame добавлен на мою страницу через javascript где-то на моей странице, я хочу получать уведомления, когда он загружается, но это не работает:

$("iframe").live("load",
    function () {
        alert(this.name + ": Im loaded!");
    });

Предупреждение не отображается
Есть идеи почему? Есть идеи, как этого добиться?

Ответы [ 2 ]

3 голосов
/ 05 августа 2011

Я думаю, что вы можете сделать обратный вызов после добавления iframe на свою страницу. Как уже упоминалось здесь , невозможно привязать live () к iframe load ().

Примечание. Методы .live () и .delegate () не могут использоваться для обнаружения событие загрузки iframe. Событие загрузки не правильно всплывает родительский документ и event.target не установлены Firefox, IE9 или Chrome, который требуется для делегирования событий.

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

$("iframe").load(function () {
    alert(this.name + ": Im loaded!");
});
0 голосов
/ 05 августа 2011

Это не сработает, поскольку load событие работает только для объекта Window.

Если вы хотите, чтобы вас заметили, когда страница внутри iframe загружена, вы должны написать код на внутренней странице , которая вызывает window.parent , чтобы уведомить ееродительская страница.

...