【问题标题】:Reading a txt file from Javascript从 Javascript 读取 txt 文件
【发布时间】:2011-02-28 06:54:52
【问题描述】:

我正在尝试使用 JS 从 txt 文件中读取几行,我有此代码,但由于某种原因它无法正常工作,

var fso = new ActiveXObject("Scripting.FileSystemObject"); 

var s = fso.OpenTextFile("C:\\wamp\\www\\22.txt", 1, true);

var row = s.ReadLine();


alert(row);

有什么建议吗?!

【问题讨论】:

  • 当你说不工作..什么不工作?你是在 IE 或任何其他浏览器中测试这个吗?
  • 我试过 Firefox 和 chrome,是的,没有输出!
  • 大多数浏览器不允许这样做。你可以从控制台运行脚本,它会工作。但不是在浏览器中,除非页面本身以高度信任加载。在 IE 中,您可以为此设置安全区域;不确定其他浏览器。
  • 你可以安装一个网络服务器然后使用XMLHttpRequest。在本地工作有其缺点。
  • 如果您保存扩展名为 .HTA 的代码以用于 html 应用程序,上述内容仅适用于开箱即用

标签: javascript activex


【解决方案1】:

确保您的浏览器具有执行此类操作的正确权限。通常,浏览器默认不允许直接访问文件系统。

【讨论】:

  • 我不确定,因为我在 PHP 中尝试过它并读取了文件,
  • PHP 是服务器端。 JavaScript 是客户端。大不同。
【解决方案2】:

只有 IE 支持ActiveXObject。尝试在任何其他浏览器上使用ActiveXObject 将失败,因为没有定义这样的变量。

您需要限制自己使用 IE,改为编写浏览器插件,或者放弃尝试通过服务器获取其他浏览器上的文件系统访问权限和代理文件。

【讨论】:

  • 这通常也不适用于 IE,因为相关对象未标记为 Safe-For-Scripting。
【解决方案3】:

如果您仍然在运行 WAMP,只需使用标准 AJAX 从服务器获取文件 22.txt。最简单的方法是使用 jQuery,代码如下:

$.get("22.txt", function(data) {
    alert(data);
}

如果您愿意,您可以搜索如何在没有 jQuery 的情况下执行此操作。

【讨论】:

    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多