【问题标题】:Reading / Writing files in Javascript - IE6用 Javascript 读取/写入文件 - IE6
【发布时间】:2015-11-16 07:50:43
【问题描述】:

我需要一个用于 Javascript 的数据库存储系统,可以在本地磁盘上维护状态。

工作中的扳手来了:-

  • 只需要支持Internet Explorer,但最低版本必须是IE6
  • 需要写入文件,以便以后可以再次读取它们(在关闭和重新打开浏览器时)
  • 因为 HTML 页面将通过 USB 分发,所以不能有 Web 服务器(除非它非常容易分发并且不需要安装)。

有谁知道任何可能对此有所帮助的解决方案?

【问题讨论】:

  • 你看过 TiddlyWiki 吗?
  • 感谢 Pointy,这看起来很有趣。 Epascarello,可悲的是,对于拥有依赖 IE6 的软件的大型企业实体来说,这要花一大笔钱才能向前迈进,虽然 MS 正在承受压力,但这是个好消息 :)

标签: javascript io local-storage internet-explorer-6


【解决方案1】:

玩得开心userData。显然它在 IE6/7 中做了你想要的

然后localStorage 用于 IE8/9

或者您可以使用更重的store.js,它会为您进行功能检测,并且显然适用于 IE6+。

它应该在 IE9 中工作,但没有保证。我会推荐 store.js,因为它更易于维护并且开箱即用。您也可以通过这种方式支持其他浏览器。

【讨论】:

  • 请注意我的规定“需要写入文件,以便以后可以再次读取(关闭并重新打开浏览器时)”。 userData / localStorage 在打开和关闭 beowser 之后是否持久?我的印象不是,但也许我错了。
  • @JulianYoung 本地存储是持久的。 SessionStorage 不是。 userData 祝你好运;)
  • 只是更新说 store.js 对我们测试的所有 IE 版本都有效。我们一直在压缩大型 JSON 数据对象并通过 store.js 将它们存储为字符串 - 对于小型数据库来说已经足够了。
  • @JulianYoung 很高兴知道。当我需要支持 IE6 时,我会使用 store.js :)
【解决方案2】:

我不知道 IE6 是否支持它,但 JScript 似乎通过FileSystemObject 对此有一定程度的支持。

var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();

根据Write binary data with FileSystemObject write(),ADODB.Stream 似乎是一个替代方案。

【讨论】:

  • FileSystemObject 可以在 IE6 上运行,但它需要提升权限,通常不会授予 USB 驱动器上的 HTML 内容。我已经尝试过这种方法,但结果证明这是一个支持问题,因为我的用户都无法让它“正常工作”......他们都不得不修改他们的系统安全设置。
  • @Mark Ever:为避免这些问题,请使用 .HTA(文件/应用程序)而不是 .HTML。
  • 我认为 Mark 关于权限问题的说法排除了这一点,我需要一些用户友好的东西。为编码示例和研究+1,谢谢:)
【解决方案3】:

对于严格的本地 IE 工作,请使用 HTA Applications。然后您可以访问本地资源(文本文件、ADO 数据库)而不会出现安全问题。

【讨论】:

  • 好电话,我也会进一步调查。谢谢。
【解决方案4】:

尝试阅读这篇文章:Read/write to file using jQuery

希望这会有所帮助。

【讨论】:

  • 感谢该链接,虽然它对我相当受限的要求不是很有帮助,但它确实有一个有趣的链接到 jquery.tiddlywiki.org/twFile.html,我将查看它。
【解决方案5】:

我建议您不要尝试使用 JavaScript 进行读/写,而是尝试在 USB 驱动器上嵌入一个小型 Web 服务器。我曾经为一个应用程序做过一次,效果很好。我使用了Cassini 网络服务器。

我在 Visual Studio 中创建了两个项目。首先,我创建了一个 ASP.Net 网站来读取/写入 SQLite 数据库。该站点显示了我的所有内容,并且与任何其他 ASP.Net 站点一样构建。其次,我创建了一个托管 Cassini Web 服务器的 Windows 窗体应用程序,并向用户展示了一个包含单个 Web 浏览器控件的窗体。这使得用户体验非常简单......他们只需从 USB 驱动器的根目录中单击 MYAPP.EXE,表单就会打开,启动 Web 服务器,并将浏览器控件导航到网站的起始页。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 2013-03-17
    • 2013-07-17
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    相关资源
    最近更新 更多