JavaScript-从文件夹扫描和创建链接文件
我已经创建了一堆本地HTML文件,我正试图通过xml文件和大量JavaScript/JQuery来翻译它们。翻译部分已经完成,我现在尝试使用所有xml文件创建一个下拉菜单来选择所需的语言 首先,我试图扫描一个名为“images”的本地文件夹,并在一个空白的html页面中打印文件名,但我无法做到这一点。我对堆栈溢出等问题做了很多研究,但即使我尝试了很多方法,也没有任何效果 以下是我目前的想法: HTML端:JavaScript-从文件夹扫描和创建链接文件,javascript,jquery,html,Javascript,Jquery,Html,我已经创建了一堆本地HTML文件,我正试图通过xml文件和大量JavaScript/JQuery来翻译它们。翻译部分已经完成,我现在尝试使用所有xml文件创建一个下拉菜单来选择所需的语言 首先,我试图扫描一个名为“images”的本地文件夹,并在一个空白的html页面中打印文件名,但我无法做到这一点。我对堆栈溢出等问题做了很多研究,但即使我尝试了很多方法,也没有任何效果 以下是我目前的想法: HTML端: <body> <div id="fileNames">
<body>
<div id="fileNames">
<p></p>
</div>
<script>window.onload=ChangeLangue</script>
</body>
window.onload=ChangeLangue
JS/Jquery端:
var folder = "images/";
$.ajax({
url: folder,
success: function (data) {
$(data).find("a").attr("href", function (i, val) {
if (val.match(/\.(jpe?g|png|gif)$/)) {
$("body").append("<img src='" + folder + val + "'>");
}
});
}
});
var folder=“images/”;
$.ajax({
url:文件夹,
成功:功能(数据){
$(数据).find(“a”).attr(“href”),function(i,val){
if(val.match(/\(jpe?g | png | gif)$/){
$(“正文”)。追加(“”);
}
});
}
});
我做错了什么?这可能吗?浏览器不允许跨源请求。将抛出一个错误作为
跨源请求仅支持协议方案:http、data、chrome、chrome扩展名、https。
因为协议是文件://
您可以通过设置一个标志来完成此操作:
open/Applications/Google\Chrome.app--args--允许从文件访问文件
WINDOWS:在运行时,C:/PATH\u TO\u CHROME\u INSTALLATION\u文件夹/CHROME.exe--允许从文件访问文件
现在,您可以从计算机访问这些文件。要验证它,您可以转到chrome://version
并且您可以在命令行
部分下看到启用的标志
由于您有var folder=“images/”
,并且假设在浏览器中加载的页面位于/Users/Default/Desktop
文件夹中,所做的ajax请求将
file:///Users/Default/Desktop/images
如果在文件夹var folder=“/images/”
之前添加/
,
请求将是file:///images/
确保提供所需/完整的路径
得到响应后,由于响应是html格式的,因此可以使用document.write(response)
。从那里,您可以查看和浏览文件夹
我尝试了下面的JS代码并得到了结果
<script type="application/javascript">
var url = "/Users/Default/Downloads";
var req = new XMLHttpRequest();
req.open("GET",url,true);
req.onreadystatechange=function(){
if(req.readyState === 4)
{
document.write(req.responseText);
}
};
req.send();
</script>
var url=“/Users/Default/Downloads”;
var req=新的XMLHttpRequest();
请求打开(“获取”,url,true);
req.onreadystatechange=函数(){
如果(req.readyState==4)
{
文件写入(请求响应文本);
}
};
请求发送();
附言:不知道它是否在Windows机器上工作。如果我错了,请纠正我。TIA。当你说“本地”时,你是指在客户端计算机上吗?如果是这样,那是不可能的。浏览器安全性阻止访问本地文件系统——这是有很好的理由的。我的意思是在我自己的计算机上,而不是在网络上。仍然是一样的。浏览器不允许JS访问本地文件系统。如果是这样,我就可以访问您计算机上的所有文件;)该死:(感谢您的快速回答!您可以使用file类型的输入,但这需要用户交互,单击实例您解释的问题正是发生的原因。我尝试了您的解决方案,但该命令在windows上似乎不起作用。感谢您的帮助,我将找到其他方法来完成此操作!退出所有chrome实例,转到运行并执行。)te命令-chrome.exe——允许从文件访问文件。我认为这是可行的。没有经过测试只是谷歌搜索。是的,我尝试了,但我得到了相同的错误(“跨源请求仅支持协议方案:http、数据、chrome、chrome扩展名、https。”)。使用firefox for windows似乎不会出现此错误,因为我在firefox上使用的所有HTML页面都很好,但在Chrome上则不行(我从一开始就在使用firefox)。您的JS是一个很好的开始,我将继续使用。感谢您的帮助