Jquery - перехватывать ссылки, нажимаемые внутри iframe - PullRequest
4 голосов
/ 29 апреля 2010

Я пытаюсь перехватить ссылки, нажимаемые на странице, в том числе внутри фрейма. Это код, который у меня есть, но он не работает. Любые идеи, что мне нужно сделать?

$("#container").delegate('a', 'click', function(e){ 
//do stuff
}

Контейнер - это идентификатор элемента div внутри фрейма.

Заранее спасибо за любые советы

Ответы [ 2 ]

2 голосов
/ 29 апреля 2010

Вам нужно войти внутрь <iframe> и установить там делегата, вы можете сделать это так:

$('#myiframe').contents().find("#container").delegate('a', 'click', function(e){ 
  //do stuff
}

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

1 голос
/ 29 апреля 2010

Почему бы не добавить прослушиватель событий в iframe, а затем вызвать родителя / средства открытия для уведомления о событии.

Если содержимое iframe находится в другом домене, вы не сможете выполнить это, поскольку оно классифицируется как «клик-джеккинг», что представляло большую угрозу безопасности.

...