【问题标题】:Self modifying html-JavaScript file自修改 html-JavaScript 文件
【发布时间】:2011-04-20 17:21:49
【问题描述】:

我想要一个带有 JavaScript 的 html 文件,它(文件)能够修改其上下文。更详细地说,我是这样想的。我有一个 html 文件,我用浏览器打开它。我有一个文本区域,在那里我输入我的文本并按下提交按钮。结果,表单的上下文保存在 html 文件中的某个位置。最简单、最稳定的方法是什么?

【问题讨论】:

  • 如果您谈论的是永久存储,则需要为此提供服务器端语言或服务。可以用吗?
  • 我想在我的本地计算机上做所有事情。我知道没有服务端语言是可能的。我可以提到 TiddlyWiki 的一个工作示例。
  • 那你为什么不看看呢?
  • TiddlyWiki 是单个 html 文件中的 wiki。但我不能告诉你他们是如何写入/保存数据的。但你可能想看看他们的源代码:tiddlywiki.com :-)
  • 如果你下载 TiddlyWiki,你会发现它实际上带有 两个 文件——JAR 是用来保存的。

标签: javascript html self-modifying


【解决方案1】:

TiddlyWiki 以特定于浏览器的方式将其所有内容保存到一个新的本地 html-with-javascript 文件中。这是因为出于安全原因,javascript 通常不允许写入本地硬盘驱动器。如果您对 TiddlyWiki 如何编写文件感兴趣,请查看the source code,开头为:

function saveFile(fileUrl,content)
{
    var r = mozillaSaveFile(fileUrl,content);
    if(!r)
        r = ieSaveFile(fileUrl,content);
    if(!r)
        r = javaSaveFile(fileUrl,content);
    return r;
}

这要求用户明确覆盖安全警告。当我在 Firefox 中尝试它时,我不得不这样做几次。这不是一个好的做法,因为用户会非常想检查“记住这个决定”并可能在未来将自己暴露在恶意软件中。

正如其他人所说,更好的主意是使用客户端存储,例如 HTML 5 中的新功能(在较新的浏览器中可用),或者更便携的库,例如 Google Gears;或者更好,YUI's StorageUtility,它抽象到更高的层次,并根据可用的内容使用 HTML 5、Google Gears 或 SWF。

【讨论】:

  • 请注意,关于客户端存储选项可移植性的讨论已过时。
猜你喜欢
  • 2014-11-03
  • 2015-08-14
  • 2013-10-01
  • 2012-04-22
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多