如何在jQuery帖子中更新子iFrame整个html(header + body)

时间:2010-05-11 02:33:11

标签: javascript jquery html iframe frameset

我有一个Firefox的聊天网页,其结构如下

.....外部HTML

----- | ......框架集

------------ | ...... header:包含jQuery帖子已经返回数据:rdata = new_iFrame_html_str,应该更新的iFrame的整个html字符串

------------ | ...... iFrame

-------------------- | ...... header:包含jQuery

-------------------- | ...... body:聊天消息依赖于头jQuery正常运行

问题:我无法使用此jQuery帖子,即我找不到这篇文章的方法来更新整个 iFrame(标题+正文)。

我尝试使用javascript和jQuery失败的事情:

  1. top.frames ['framesetFrame_name']。document.getElementById('iframe_id')。contentDocument.body.innerHTML = new_iFrame_html_str;
    • 我不喜欢这个,因为它只是改变了主体,而不是头部,所以从jQuery生成的行为无法显示

  2. top.frames [ 'framesetFrame_name']的document.getElementById( 'iframe_bucinid')contentWindow.location.reload()。;
    • 不想重新加载,因为重新加载会使iFrame闪烁,对聊天程序不利

  3. top.frames ['framesetFrame_name']。document.getElementById('iframe_id')。contents()。html = new_iFrame_html_str;
    • 不更新任何显示:(

  4. top.frames ['framesetFrame_name']。document.getElementById('iframe_id')。contentWindow.location.href = new_iFrame_html_str;
    • 这实际上是错误的表单,因为它应该是= url_of_new_content

  5. $(top.frames ['framesetFrame_name']。document.getElementById('iframe_id'))。html(new_iFrame_html_str);
    • 不更新任何显示:(

1 个答案:

答案 0 :(得分:0)

所以下面的这两行是获得我想要的迂回方式(刷新子iframe的整个HTML)。但是,即使刷新头部,iframe头部的jQuery仍然没有执行。

有谁知道为什么?

第一行取出“”和“”,因为我们正在更新HTML的innerHTML

var subtxt = new_iFrame_html_str.substring(6, txt.length-9);
top.frames['framesetFrame_name']
   .frames['iframe_name']
   .document.body.parentNode.innerHTML = subtxt;