如何使用jQuery或javascript访问iframe的内容

时间:2013-10-17 07:35:01

标签: jquery iframe

我有一个iframe加载一个页面,当单击一个按钮时,该页面会加载包含链接的动态内容。我需要将所有这些链接的目标从_blank更改为_self - 但我完全停留在每次在iframe中加载新内容时如何运行代码。我已经尝试了很多选项,最新的是将iframe函数添加到iframe作为运行代码的触发器:

$("#myFrame").click(function () {
  $('#myFrame').find('a[target="_blank"]').each(function () {
    $(this).attr('target', '_self');
  });
});

如果内容在iframe中加载完成后,如何查找动态生成的内容并更改链接目标?没有“同源政策”问题,因为iframe中的网页位于同一个域中。

感谢。

2 个答案:

答案 0 :(得分:2)

使用javaScript获取iframe的DOM,如下所示:

var doc=window.frames[ "yourFrameName" ].document

注意:如果您遵循上述规则获取框架的DOM,请使用name而不是idclass

将其更改为jquery对象

var elem=$(doc);

现在绑定elem上的点击事件,正如您在问题中的代码中所做的那样

elem.click(function () {

 elem.find('a[target="_blank"]').each(function () {

  $(this).attr('target', '_self');
 });

});

答案 1 :(得分:0)

您可以使用contents()方法

以下是一个例子:

$("#myiframe").contents().find("#myContent")