我正在使用jQuery和Ruby On Rails。
我有一个ajax调用$.get()
,它会呈现一段包含iframe的html
我想修改iframe,以确保在新窗口中打开<a>
个链接。
为此,我在iframe定义中添加了一个onload:
<iframe id="iframe_message_<%= message.id %>" class="iframe_message" name ="iframe_message_<%= message.id %>" width="100%" frameborder="0" src="<%= message.attachments.body_html.first.document.url %>" onLoad="autoResize('iframe_message_<%= message.id %>');">
autoResize
函数在ajax调用呈现的html中定义,并包含:
$(".iframe_message").ready(function () {
$('a', frames[id].document).attr('target','_blank');
});
这在IE,Safari中工作得很好但是我遇到了firefox的问题,它在第一次通过鼠标点击调用$.get()
时有效,但在下一次点击时却没有(<a>
标签是没有修改过。)
我考虑过缓存问题并将$.get()
替换为$.ajax()
cache:true
,但我仍然有相同的行为。
关于可能出现什么问题的任何想法?
答案 0 :(得分:0)
很难从您的描述中看出,但您的jquery可能需要在iframe中调用。将iframe视为单独的网页。
答案 1 :(得分:0)
我浏览了jQuery网站并查看了.content说明 我的“工作”代码是
$("#"+id).contents().find("a").attr('target','_blank');
其中"#"+id
是我的iframe的ID。