jQuery iframe只在Firefox中第一次访问

时间:2011-03-24 06:35:48

标签: jquery ruby-on-rails firefox iframe

我正在使用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,但我仍然有相同的行为。

关于可能出现什么问题的任何想法?

2 个答案:

答案 0 :(得分:0)

很难从您的描述中看出,但您的jquery可能需要在iframe中调用。将iframe视为单独的网页。

答案 1 :(得分:0)

我浏览了jQuery网站并查看了.content说明 我的“工作”代码是

$("#"+id).contents().find("a").attr('target','_blank');

其中"#"+id是我的iframe的ID。