我想问一下使用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>
答案 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)
当您从服务器访问“相同”脚本时,本地尝试运行脚本的本地存储是不同的。因此,您将显示两个不同的本地存储。这是出于安全原因。您不希望外国网站访问第三方内容。