我有一个iframe加载一个页面,当单击一个按钮时,该页面会加载包含链接的动态内容。我需要将所有这些链接的目标从_blank
更改为_self
- 但我完全停留在每次在iframe中加载新内容时如何运行代码。我已经尝试了很多选项,最新的是将iframe函数添加到iframe作为运行代码的触发器:
$("#myFrame").click(function () {
$('#myFrame').find('a[target="_blank"]').each(function () {
$(this).attr('target', '_self');
});
});
如果内容在iframe中加载完成后,如何查找动态生成的内容并更改链接目标?没有“同源政策”问题,因为iframe中的网页位于同一个域中。
感谢。
答案 0 :(得分:2)
使用javaScript获取iframe的DOM,如下所示:
var doc=window.frames[ "yourFrameName" ].document
注意:如果您遵循上述规则获取框架的DOM,请使用name
而不是id
或class
。
将其更改为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")