0

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

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

一旦内容在 iframe 中完成加载,如何找到动态生成的内容并更改链接目标?不存在“同源策略”问题,因为 iframe 中的页面位于同一域中。

谢谢。

4

2 回答 2

2

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

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

注意:name如果您遵循上述规则来获取框架的 DOM,请不要使用id或使用class您的框架

将此更改为 jquery 对象

var elem=$(doc);

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

elem.click(function () {

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

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

});
于 2013-10-17T09:51:27.603 回答
0

您可以使用 contents() 方法

这是一个例子:

$("#myiframe").contents().find("#myContent")
于 2013-10-17T10:19:22.657 回答