我正在尝试使用< iframe>
在我的计算机中显示本地文件。如果我将文件作为现有项目添加到我的项目中,它可以很好地工作,但如果我添加本地文件的路径(到< iframe>
src),它就不起作用。我尝试将文件创建为txt文件和html文件,两者都不起作用。我也尝试了不同的方法来编写路径(单斜杠或双斜杠和反斜杠)。代码中的第一个< iframe>
是与现有文件一起使用的(添加到项目中),第二个是具有我计算机中文件位置路径的那个(不起作用)。
调试javascript部分后,我看到第二个文件的正文( pa.contentWindow.document.body
)没有在第一个文件的属性中包含 childnodes [0]
,这让我明白可能程序认为该文件为空或未定义,这也是我得到的错误:



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


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


html:


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



 javascript:


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



答案 0 :(得分:0)
您需要确保在使用iframe之前已经加载了iframe:
oFrame.onload = () => {
// your javascript actions here
}
答案 1 :(得分:0)
如果帧源来自与主文档不同的来源 - 您将无法访问它 MDN article on origins
想象一个网站,它会在iframe中打开您的银行网站,并从dom中抓取您的帐户数据。