代码之家  ›  专栏  ›  技术社区  ›  Rajat

使用JavaScript读取IFrame内容

  •  4
  • Rajat  · 技术社区  · 16 年前

    首先是我测试的示例代码:

    <head>
    <script type="text/javascript">
    function init(){
      console.log("IFrame content: " + window.frames['i1'].document.getElementsByTagName('body')[0].innerHTML);
    }
    </script>
    </head>
    <body onload="init();">
    <iframe name="i1" src="foo.txt"/>
    </body>
    

    文件“foo.txt”如下所示:

    sample text file
    

    问题:

    1) iframe看起来像一个HTML文档,而文件文本实际上是主体的一部分。为什么?IFrame是HTML文档的规则。iframe的内容不可能是纯文本吗??

    之前 标签总是那么我实际上将不得不在 之前 内部HTML

    4 回复  |  直到 16 年前
        1
  •  4
  •   Tahir Alvi Sean Kinsey    6 年前

    innerHTML 归还 准确的 元素的内容,它是一个返回HTML的非标准化方法 相等的 在HTML中,与纯文本等价的是 <pre>foo...</pre> .

    innerText 属性。。

        2
  •  7
  •   Peter O. Manuel Pinto    14 年前

    我很难得到一个TXT文件的内容,这个文件是iframe的src。 这是我的解决方案:

    document.getElementById( 'iframeID' ).contentWindow.document.body.innerText
    
        3
  •  0
  •   Dormilich    16 年前

    您使用的是DOM/JS接口。只有当内容被视为HTML/XML时,这才有效。

        4
  •  0
  •   Nikita Rybak    16 年前

    这就是浏览器处理文本文件的方式,因为它们以这种方式“看起来更好”(不仅在iframe中)。浏览器可以处理大量的文件类型,期望它们以原始形式显示所有内容是不合理的,对吧?因为浏览器页面(和iframe)是关于表示的,所以没有人真正使用iframe进行配置或从磁盘读取原始数据。

    如果您想完全控制演示文稿,只需将文件类型更改为html,它将被视为html(特别是,它将解决“pre”问题)

    这能回答你的问题吗?