使用JavaScript读取/“包含”某些本地文件 - 离线 -

时间:2017-04-03 15:56:33

标签: javascript html file-io

我尝试构建一个基于客户端的离线应用。假设我在同一目录中有两个文件data.txt和read.html。

现在我要做的就是阅读(在read.html中)data.txt的内容,比如说,在DIV中显示它(没有任何用户交互 - 所以没有<input type="file">或任何东西)。

我已经阅读了很多关于此的文章,所有人都说由于安全问题打开本地文件是不可能的。但我不确定这是否适用于离线应用。例如,我可以通过以下代码“几乎”达到我想要的目标:

var w = window.open("data.txt");
var content = w.document.body.textContent;
mydiv.innerHTML = editForPresentation(content);
w.close();

唯一的问题是,这仅适用于.txt文件,但不适用于例如.txt文件.xlsx文件,因为浏览器(我使用Edge)不会以明文打开后者。

我必须有一个简单的方法来做到这一点,对吗?

1 个答案:

答案 0 :(得分:0)

不,没有。客户端的Javascript没有对文件系统的任何访问权限。期。最终

如果你只想使用javascript,你可以做的是创建一个服务器应用程序与Node.js(这是一个&#34;服务器端&#34; js库)或any other js server-side library并将其用作根据你的需要。然后使用您的javascript客户端访问服务器并询问您想要的文件。但你必须有两个方面的应用程序。服务器和客户端。不仅是客户。

window.open在浏览器窗口中打开资源,这就是它运作的原因。就像你正在加载一个新页面一样。然而,二进制资源不会加载。 您还可以使用<script src='something'>加载js文件,然后加载并运行它们。但是没有加载的文件可以访问文件系统。