JQuery在Iframe中查找元素(通过其文本)并向其添加.click函数

时间:2009-10-02 09:00:34

标签: jquery iframe filter find contains

我有一个网页(A),我使用iframe将(A)嵌入到我的主页(B)。这个(A)包含一个关闭浏览器窗口的链接:

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

由于我嵌入了(A),(A)中的紧密能力不再具有功能性。我需要做的是,当从(B)点击此链接时,我想要隐藏我的iframe,换句话说,让它看起来像关闭。所以我必须在iframe中找到该链接并了解它是否被点击(B)?

请帮助。

由于

1 个答案:

答案 0 :(得分:11)

我认为以下内容可行。我们基本上对您的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(); 
    });
  }
});