Как я могу связать событие с элементом внутри локального iframe? - PullRequest
2 голосов
/ 14 октября 2010

Во-первых, родительская страница и iframe размещаются на одном и том же сервере (мой локальный хост на WAMP), поэтому одна и та же политика происхождения не должна быть здесь проблемой.

Я не могу заставить работать триггер.Мой iframe имеет идентификатор iframe.

$(window).load(function(){
  //iframe ad hovers
  $('#iframe').contents().find('body div').click(function(){
    alert('do something here');
  });
}); 

что я делаю не так?

Ответы [ 2 ]

7 голосов
/ 14 октября 2010

Я не уверен, что браузер будет распространять событие "щелчка" из контекста окна <iframe> в содержащее окно.Есть ли у документа, загруженного в <iframe>, собственная копия jQuery?Если это так, вы можете попробовать это:

$('#iframe').contents().$.find('body div').click(function(){
  alert('do something here);
});

Это изменение делает код jQuery в окне <iframe> обработкой события.

Ну, ядумайте, что @jAndy прав, и это должно работать как есть - , но вы должны убедиться, что документ во фрейме загружен.Попробуйте это:

$('#iframe').load(function() {
  $(this).contents().find('body div').click(function() { alert("hi"); });
});
0 голосов
/ 14 октября 2010

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

Попробуйте мой быстрый пример http://jsfiddle.net/UFM44/4/ Он такой же, как ваш код, но я запускаю его после нажатия на ссылку «сейчас». если затем нажать на логотип, вы увидите сообщение оповещения ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...