Прикрепите обработчик кликов даже на элементе внутри iframe с помощью jQuery

Как я могу прикрепить обработчик события клика к элементу внутри iframe?

Вот что я пробовал и не работал:

$("#parent iframe").contents().find("a").live("click", function () {
    alert ("test");
    return false;
});

iframe находится в одном домене.

Ответы

Ответ 1

Обнаружена проблема. LIVE не работает внутри iframe. Переключение на привязку работает нормально. Вместо этого выполняйте делегирование вручную.

Ответ 2

В принципе, возможно, не так, как предполагают, контент, вероятно, будет из другого домена (обычное использование iFrames). Эти статьи объясняют, почему:

iframes и междоменная безопасность Cross-Domain Ajax Insecurity

В качестве альтернативы вам потребуется изменить исходный код в iFrame (если у вас есть контроль над ним), или вы можете попросить пользователей уменьшить их защиту браузера (возможно, это возможно в интрасети, но даже тогда это не очень хорошая идея).