Javascript 从运行localy的JS访问文件
我需要从JS加载一个简单的.CSV文件(这不是这里的问题),但“脚本”需要可移植(我将在比赛中使用它作为屏幕),分数数据将插入CSV,JS将根据CSV更新其数据 但我的问题是:我需要在没有apache或服务器的情况下运行它,因为我无法让舒尔成为使用它的人,拥有apache和互联网。。。它需要从一个文件夹中打开(只是一个带有JS的HTML,以及一个与.CSV位于同一文件夹中的文件) 当我尝试从jQuery(Javascript 从运行localy的JS访问文件,javascript,jquery,ajax,http,google-chrome,Javascript,Jquery,Ajax,Http,Google Chrome,我需要从JS加载一个简单的.CSV文件(这不是这里的问题),但“脚本”需要可移植(我将在比赛中使用它作为屏幕),分数数据将插入CSV,JS将根据CSV更新其数据 但我的问题是:我需要在没有apache或服务器的情况下运行它,因为我无法让舒尔成为使用它的人,拥有apache和互联网。。。它需要从一个文件夹中打开(只是一个带有JS的HTML,以及一个与.CSV位于同一文件夹中的文件) 当我尝试从jQuery($.get(…,…,“jsonp”)和$.get()访问文件时,Chrome会输出以下错误:
$.get(…,…,“jsonp”)
和$.get()
访问文件时,Chrome会输出以下错误:
XMLHttpRequest无法加载文件:访问控制允许源文件不允许文件源文件的路径为null。
这是因为浏览器阻止了它的内容(出于安全原因)
我如何“处理”这个问题,或者你知道更好的解决方案吗?保存一些简单的数据并从JS中读取数据,而不会出现安全问题
谢谢您需要在chrome启动命令行中添加--允许从文件访问文件
制作一个BAT文件,让你的用户点击它来启动你的应用程序
%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe ^
--allow-file-access-from-files ^
http://bing.co.uk
替换掉http://for your文件url。您可以使用html5文件阅读器。但用这种方式,您必须选择文件
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<label for="files">Path to file: </label><input type="file" id="files" name="files[]"/>
<script>
function handleFileSelect(evt) {
var files = evt.target.files;
var f;
for (var i = 0; f = files[i]; i++) {
if (!f.type.match('text.*')) {
continue;
}
var reader = new FileReader('test.html');
reader.onloadend = (function () {
return function(e) {
alert(e.target.result);
};
})();
reader.readAsText(f);
}
}
var fileSerf= document.getElementById('files');
if (fileSerf){
fileSerf.addEventListener('change', handleFileSelect, false);
}
</script>
</body>
</html>
文件路径:
功能手柄文件选择(evt){
var files=evt.target.files;
var f;
对于(var i=0;f=files[i];i++){
如果(!f.type.match('text.*')){
继续;
}
var reader=newfilereader('test.html');
reader.onloadend=(函数(){
返回函数(e){
警报(如目标、结果);
};
})();
reader.readAsText(f);
}
}
var fileSerf=document.getElementById('files');
if(fileSerf){
fileSerf.addEventListener('change',handleFileSelect,false);
}
示例:是否有其他方法可以做到这一点,任何“愚蠢”的人都可以使用?@Ivan看起来没有:——这个错误与一个尚未解决的更大的错误合并。但是,您可以创建一个Chrome的快捷方式,并在属性中向路径添加标志(比创建批处理脚本IMHO稍微容易一些)。它解决了,但不是“完美的”。。。这是一种“变通方法”^^^但无论如何都要感谢!=]BAT脚本是“可移植的”,快捷方式将需要路径手术…对谁来说更容易?