加载.txt文件形式javascript并使用localStorage

时间:2018-05-24 09:39:00

标签: javascript

我想问一下使用ActiveXObject和使用localStorage。

在我的项目中,我使用ActiveXObject加载.txt文件。(在本地不在服务器上) 后来我必须使用localstorage,但IE不能使用localstorage。 但在服务器上工作但是如果我使用服务器我不能使用ActiveXObject ...

那么有什么解决方案可以解决这个问题吗?

这是我目前的代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
  <title> test </title>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<script>
    var ct = localStorage.getItem("ct"); 
    if(ct == null) ct = 0; 


  function readFile(filename){
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var ForReading = 1;
    var f1 = fso.OpenTextFile(filename, ForReading);
    var text = f1.ReadAll();
    f1.close();
    return text;
  }

    read = setInterval(function(){

      number = readFile("C:/rec_dice/numberOf.txt");
      split = number.substring(0,1);
      console.log("st point : " + split);
    },1000);

</script>
</head>
<body>
<h1>TEST for stn</h1>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

如果您在浏览器中使用javascript,那么访问本地文件确实没有好方法。如果它只是一个没有http / web服务器的同一台机器上的文本文件,你可能会遇到一些问题,就像在javascript中一样,大多数浏览器默认禁用读取本地文件的能力。在chrome中,您可以通过在命令行启动浏览器时添加以下标志来禁用此安全功能。

- 禁用-web的安全

如果您的数据是json,xml,csv结构,如果文件托管在可通过HTTP访问的服务器上,则可以使用AJAX调用将其引入。不使用http ajax调用,如上面的问题链接中提到的另一种可能的解决方案:

只是HTML5功能的更新http://www.html5rocks.com/en/tutorials/file/dndfiles/这篇优秀的文章将详细解释Javascript中的本地文件访问。上述文章摘要:

规范提供了几个用于访问“本地”文件系统文件的接口:

文件 - 单个文件;提供只读信息,例如名称,文件大小,mimetype和对文件句柄的引用。 FileList - 类似于数组的File对象序列。 (在桌面上思考或拖动文件目录)。 Blob - 允许将文件切片为字节范围。 - @Horst Walter 如下所示,您可以选择“文件上传”输入,只需将文件路径作为输入的默认选项“

答案 1 :(得分:0)

当您从服务器访问“相同”脚本时,本地尝试运行脚本的本地存储是不同的。因此,您将显示两个不同的本地存储。这是出于安全原因。您不希望外国网站访问第三方内容。

相关问题