JavaScript搜索许多txt文件

时间:2018-08-09 07:44:47

标签: javascript html

我在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>

谢谢。

1 个答案:

答案 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调用来调用此服务。