JQuery находит элемент в Iframe (по его тексту) и добавляет к нему функцию .click - PullRequest
5 голосов
/ 02 октября 2009

У меня есть веб-страница (A), и я встраиваю (A) в свою главную страницу (B), используя iframe. Это (A) содержит ссылку, которая закрывает окно браузера:

<a href="" onclick="window.opener = window;
    window.close();
    return false;">Close The Page</a>

Так как я встраиваю (A), способность к закрытию в (A) больше не функциональна. Что мне нужно сделать, так это то, что при щелчке по этой ссылке из (B) я хочу скрыть свой iframe, другими словами, чтобы он выглядел как закрытие. Поэтому я должен перейти по этой ссылке в iframe и понять, нажата она или нет (B)?

Помогите пожалуйста.

Спасибо

1 Ответ

11 голосов
/ 02 октября 2009

Я думаю, что следующее будет работать. Мы в основном выполняем «поиск» по содержимому вашего iframe. Как только мы находим нужную ссылку, мы привязываем к ней событие, которое закроет соответствующий iframe в родительском документе. Обратите внимание, что ваш iframe должен находиться в том же домене, что и родительская страница, иначе вы не сможете получить доступ к его элементам. Кроме того, я добавил класс по ссылке, чтобы облегчить выбор. Я предлагаю вам также сделать это.

$("#iframeID").contents().find("a.closeWindow").bind("click", function(){
  $("#iframeID", top.document).hide();
});

Если вам абсолютно необходимо привязать привязку к тексту ссылки, вам придется переключаться между ссылками, чтобы найти нужную:

$("a", $("#iframeID").contents()).each(function(){
  if ($(this).text() == "Close The Page") {
    $(this).bind("click", function() { 
      $("#iframeID", top.document).hide(); 
    });
  }
});
...