2011-03-18 89 views
11

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

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

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

+0

可能重复[自修改html-JavaScript文件](http://stackoverflow.com/questions/3854059/self-modifying-html-javascript-file) – 2013-10-20 17:07:56

回答

11

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

+0

谢谢!这似乎工作。让我检查并回来。 – Jus12 2011-03-18 09:14:24

+1

它在这里不起作用(Firefox 24)。有任何想法吗? – 2013-10-20 17:06:27

4

如果是互联网 资源管理器,您可以使用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> 
+0

activeX的想法很好,但我也需要页面在Firefox中工作 – Jus12 2011-03-18 09:19:46

+1

也许一个Firefox扩展会对你有所帮助。看看https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO – 2011-03-18 09:27:53

+0

ActiveX?所以它只适用于Windows?那对安全性的影响呢? – 2016-08-24 15:23:50

0

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

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

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

...但它要求用户放松自己的浏览器设置。在其他浏览器上,您可以使用jar(Java Archive)文件。你也可以看到非浏览器的JavaScript容器提供了什么,例如, Microsoft HTA文件(HTML应用程序)将支持Windows ActiveX FileSystemObject,因为您的病毒检查软件允许执行HTA文件。

+0

* API现在存在,但仍缺乏良好的支持:http://caniuse.com/#feat=filesystem – 2013-11-13 20:51:06