问题 本地JavaScript - 写入本地文件


我有一些从本地HTML文件加载的JavaScript代码(不通过网络服务器)..即,打开使用 file://

有没有办法将此文件中的JavaScript代码用于写入本地文件?

我知道跨站点限制不允许在JavaScript中使用很多东西,但这不是跨站点的,所以理论上应该允许它。


12972
2018-03-18 09:06


起源

可能重复 自修改html-JavaScript文件 - Joachim Breitner


答案:


有一个jQuery插件 jQuery.twFile 它允许您读取和写入本地文件。


11
2018-03-18 09:10



谢谢!这似乎有效。让我检查一下,然后回来。 - Jus12
它在这里不起作用(Firefox 24)。有任何想法吗? - Joachim Breitner


如果是Internet Explorer,您可以使用 的ActiveX

<html>
    <head>
        <script type="text/javaScript">
            function WriteToFile()
            {
               var fso  = new ActiveXObject("Scripting.FileSystemObject");
               var txtFile = fso.CreateTextFile("c:\\TestFile.txt", true);
               txtFile.WriteLine("This is a test");
               txtFile.Close();
            }
        </script>
    </head>

    <body>
        <p>
            <script type="text/javaScript">  WriteToFile(); </script>
        </p>
    </body>
</html>

4
2018-03-18 09:16



activeX的想法很好,但我也需要在Firefox中使用该页面 - Jus12
也许firefox扩展会对你有所帮助。看一下这个 developer.mozilla.org/en/Code_snippets/File_I%2F%2FO - Ashwin Krishnamurthy
的ActiveX?所以它只适用于Windows?安全隐患怎么样? - Peter Mortensen


在浏览器中没有用于文件系统访问的本机API *。你首先需要它!

例如,在Internet Explorer中,有一个ActiveX对象:

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

...但它需要用户放松他们的浏览器设置。在其他浏览器上,您可以使用jar(Java Archive)文件。

您还可以看到非浏览器JavaScript容器提供的内容,例如Microsoft HTA文件(HTML应用程序)将支持Windows ActiveX FileSystemObject,提供您的病毒检查软件允许HTA文件执行。


0
2018-03-18 09:18



*现在存在API,但仍然缺乏良好的支持: caniuse.com/#feat=filesystem - Lee Kowalkowski