我想在 html 页面中读取一个文本文件,两者都在同一目录中,并且我没有运行服务器。我打算让我的用户离线使用该脚本(基本上是基于表达式的文本操作并保留换行符)。
我尝试过ajax调用,但主要发生了跨域来源问题,我知道大多数用户在许多浏览器中都会加强这种安全性,因此仅在我的浏览器中无法规避此问题。
我想支持许多浏览器,包括 IE7、8 等不支持 HTML5 文件读取器的旧浏览器。出于同样的原因,使用 filesystemobject 或 activex 读取效果不好。
在用户选择文件作为输入后读取文件,这可能吗?否则我将别无选择,然后使用其他技术,如 php、java 等,这些技术可能需要我的用户进行设置。
<
如果我重复这一点,请原谅我,但我是一名初学者网络开发人员。我知道通过 javascript 读取本地文件是不可能的,但是还有其他方法吗?
最佳答案
如果您不能支持 FileReader,那么答案几乎是否定的(至少,如果您想支持大量浏览器而不是依赖浏览器 y 的便捷功能 x)。除非:您确实增加了运行应用程序的要求并让某种本地服务器运行(例如node.js、Apache、TomCat等,但就像您所说的,这将大大增加要求并为用户带来麻烦)。
您还可以重新思考您想要实现的目标。您要读取的文件内容是什么?这些内容不能成为您向用户提供的 HTML 文件的一部分(即脚本标签内的大型 JSON 对象吗?)
关于使用node.js的可能性:
Node.js 非常容易安装,假设您要求用户安装它,您可以将它用作本地服务器,这是一个大约两行大小的 Nodejs 脚本:)。在本地运行它还不需要在任何地方上传任何内容,因为您可以使用 fs-object 直接从文件系统读取(请参阅 sitepoint.com/accessing-the-file-system-in-node-js)。
仍然:从设计和易用性的 Angular 来看,您可能希望诉诸使用其他技术,或者将文本文件内容包含在 HMTL 文件中
关于javascript - 如何从javascript中的输入文件读取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21281942/