javascript - 如何从javascript中的输入文件读取文本?

标签 javascript php jquery html

我想在 html 页面中读取一个文本文件,两者都在同一目录中,并且我没有运行服务器。我打算让我的用户离线使用该脚本(基本上是基于表达式的文本操作并保留换行符)。

  1. 我尝试过ajax调用,但主要发生了跨域来源问题,我知道大多数用户在许多浏览器中都会加强这种安全性,因此仅在我的浏览器中无法规避此问题。

  2. 我想支持许多浏览器,包括 IE7、8 等不支持 HTML5 文件读取器的旧浏览器。出于同样的原因,使用 filesystemobject 或 activex 读取效果不好。

  3. 在用户选择文件作为输入后读取文件,这可能吗?否则我将别无选择,然后使用其他技术,如 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/

相关文章:

php - 从上游读取响应头时,FastCGI 在 stderr 主脚本中发送未知

php - mysqli无法创建表

php - 每 3 分钟 Wordpress cronjob

javascript - 使用复选框 onClick 覆盖父级 onClick 事件?

javascript - 图像上的简单 Javascript/CSS 文本叠加

javascript - 在文本区域中指示自动换行

jquery - 带有 ScrollOverflow 选项的 FullPage,当出现上面的表单部分时,需要从底部开始滚动

jquery.validate.js JavaScript 错误

javascript - 迭代是否比递归更快,或者只是不太容易发生堆栈溢出?

javascript - 无法加载模板 : uib/template/modal/window. html(HTTP 状态 404 未找到)