0

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

..... 外部 HTML

-----|......Frameset 框架

------------|...... header: contains jQuery post has returned data: rdata = new_iFrame_html_str, 应该更新的 iFrame 的整个 html 字符串

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

--------------------|...... 标头:包含 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 ) ;
    • 不更新任何显示的内容:(
4

1 回答 1

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;
于 2010-05-12T14:47:36.377 回答