Javascript- <iframe>不能使用本地文件

时间:2018-02-20 11:01:53

标签: javascript file iframe

我正在尝试使用&lt; iframe&gt; 在我的计算机中显示本地文件。如果我将文件作为现有项目添加到我的项目中,它可以很好地工作,但如果我添加本地文件的路径(到&lt; iframe&gt; src),它就不起作用。我尝试将文件创建为txt文件和html文件,两者都不起作用。我也尝试了不同的方法来编写路径(单斜杠或双斜杠和反斜杠)。代码中的第一个&lt; iframe&gt; 是与现有文件一起使用的(添加到项目中),第二个是具有我计算机中文件位置路径的那个(不起作用)。

&#xA;&#xA;

调试javascript部分后,我看到第二个文件的正文( pa.contentWindow.document.body )没有在第一个文件的属性中包含 childnodes [0] ,这让我明白可能程序认为该文件为空或未定义,这也是我得到的错误:

&#XA;&#XA;
&#XA;

0x800a138f - JavaScript运行时错误:无法获取未定义或空引用的属性“innerHTML”。

&#xA;
&#xA;&#xA;

我该怎么办?任何帮助将不胜感激。

&#xA;&#xA;

html:

&#xA;&#xA;
 &lt; iframe id =“50”src =“file.txt”style =“width:100px; height:100px; border:0; border:none;”&gt;浏览器不支持iframe&lt; / iframe&gt;&#xA; &lt; iframe id =“51”src =“file:/// C:\ folder \ file.txt”style =“width:100px; height:100px; border:0; border:none;”&gt;浏览器不支持iframe&lt; / iframe&gt;&#xA;  
&#xA;&#xA;

javascript:

&#xA;&#xA;
  oFrame =的document.getElementById( “50”);&#XA; strRawContents = String(oFrame.contentWindow.document.body.childNodes [0] .innerHTML);&#xA; pa = document.getElementById(“51”);&#xA; strRawContentspa = String(pa.contentWindow.document.body.childNodes [0] .innerHTML);&#xA;  
&#xA;

2 个答案:

答案 0 :(得分:0)

您需要确保在使用iframe之前已经加载了iframe:

oFrame.onload = () => {
  // your javascript actions here
}

答案 1 :(得分:0)

如果帧源来自与主文档不同的来源 - 您将无法访问它 MDN article on origins

想象一个网站,它会在iframe中打开您的银行网站,并从dom中抓取您的帐户数据。