我正在开发一个将打包在 .exe 文件中的网站。所以该网站将只能离线使用。现在我需要解析一个本地 xml 文档。如何使用 html5 文件 api 获取本地文件的文件句柄?
编辑:我不想使用<input...>
或将文件拖到浏览器中。
我正在开发一个将打包在 .exe 文件中的网站。所以该网站将只能离线使用。现在我需要解析一个本地 xml 文档。如何使用 html5 文件 api 获取本地文件的文件句柄?
编辑:我不想使用<input...>
或将文件拖到浏览器中。
恐怕我可能会为您的设计带来坏消息:您请求的操作明确违反了 File API 规范中指定的安全模型。FileReader() 的客户端实现必须确保“用户首先选择了 FileReader 对象正在读取的所有文件”。(W3C 文件 API,13。安全注意事项:http ://www.w3.org/TR/FileAPI/#security-discussion )。
浏览器脚本可能会在没有任何用户交互的情况下任意打开和读取路径中的任何文件,这将是一个巨大的安全风险。没有浏览器制造商会允许像这样不受限制地访问整个文件系统。
如果您的脚本确实需要该 XML 文件,您将不得不指导用户如何授予浏览器对其的访问权限,因为每个浏览器都会阻止您的代码在没有用户操作的情况下直接打开它。
好吧,从技术上讲确实有一种方法,但是您将(希望)需要绕过浏览器的安全设置,它本质上是不安全的,但与其他需要特定文件位置的东西一样。
那就是说...
<html>
<head>
<script>
function foo(){
//insert desired filereading script here.
}
document.getElementById("fileFoo").click();
</script>
</head>
<body>
<input type="file" id="fileFoo" display="hidden" value="filepath.extension" onclick="foo"/>
</body>
</html>
当然,出于我的原因,我一直保持这个模糊(并且有点不正统),但如果你对环境有必要的控制,这是完全可能的。
这些天我遇到了同样的问题。每次启动网页时,我都需要网站显示一些数据。数据需要自动适应每次启动,所以我认为@Augusto 的链接不能解决您的问题。
在尝试了不同的方法(包括编写一个临时的本地 XLM 或 JSON 文件)之后,我终于说服自己,也许“替换” html 文件中的“数据”可能是最直接的方法。
我有一个 html 模板,其中有一个类似 [data] 的字符串。每次启动网页时,[data]都会被[1,2,3]等真实数据替换。所以实际上它是启动的新文件。
您可以在此处输入链接描述以查看“替换”是如何完成的。祝你好运。