我在HTML页面中有一个搜索栏,并且有很多文本文件,并且我想用Javascript进行搜索以在所有文本文件中找到String。我想知道是否有可能用Javascript做到这一点。我可以只搜索一个文本,但搜索的不是很多。这是搜索脚本和HTML。
function readTextFile(file,str)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
if(allText.search(str) != -1){
alert("exist");
alert(location.pathname);
}else{
alert("not exist");
}
}
}
}
rawFile.send(null);
}
<div>
<form name="search" onsubmit="return readTextFile('All-html.txt',this.string.value);">
<input name="string" onchange="n = 0;">
<input type="submit" value="Go">
</form>
</div>
谢谢。
答案 0 :(得分:0)
假设您的函数正常工作(readTextFile(file,str)
),我将编写一个遍历文件列表并为每个文件调用readTextFile
的新函数。如果找到str,也返回true / false。
function searchAllfiles(str){
var files = ["file1", "file2", "file3"];
files.forEach(function(filename) {
found = readTextFile(filename, str);
if (found){
alert(str + " was found in " + filename);
}
});
}
编辑:
仅使用JS不能从服务器获取文件列表。
1选项是跟踪用户动态添加的文件的客户端 第二种选择是从服务器传递列表。也许您可以将文件列表维护在1个文件内,并通过读取文件获取路径,或者构建一个将返回文件列表的服务,然后通过JS通过Ajax调用来调用此服务。