簡體   English   中英

Javascript- <iframe> 不適用於本地文件

[英]Javascript- <iframe> isn't working with local file

我正在嘗試使用<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;">Browser doesnt support iframe</iframe>
 <iframe id="51" src="file:///C:\folder\file.txt" style="width:100px;height:100px; border:0; border:none;">Browser doesnt support 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);

您需要先確保已加載iframe,然后才能執行以下操作:

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

如果框架源與主文檔的來源不同,則您將無權訪問。
MDN關於起源的文章

想象一下一個站點,它將在iframe中打開您的銀行站點,而只是從dom中獲取您的帳戶數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM