我正在尝试在客户端计算机上实现基于文本的完整搜索功能。
我发现Lunr.js部分满足了我的要求,但它必须加载到像Apache这样的服务器上,然后它才能完美工作。
就我而言,客户端计算机不会安装任何服务器或数据库。目录中只会有一堆静态 HTML 文件,以及一个索引文件,该索引文件接受用户从搜索框输入的内容,搜索框会在这些静态 HTML 文件中搜索该字符串。
Google 搜索显示了我的项目中可能需要的一些有趣的单词:innerHtml
、DOM
、iframes
和 RegExp
.
请根据您的回答提出我的疑问。提前致谢
最佳答案
我可以想到一种方法来做到这一点 - 您可以使用 XMLHttpRequest 获取本地文件。默认情况下不允许这样做,但例如可以使用以下参数启动 chromium:
--allow-file-access-from-files
您必须浏览所有想要查看的文件,并通过 stripping html tags 手动执行搜索。并执行正则表达式,这应该不难。
我在 chromium 中测试了以下代码:
var xmlhttp = new XMLHttpRequest();
var url = "file:///your-file.html";
xmlhttp.open('GET', url, true);
xmlhttp.onerror = function(e) { console.log('Problems' + e); };
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState === 4 && xmlhttp.status === 0) {
console.log("Fetched: ");
console.log(xmlhttp.responseText);
}
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
// ....
}
else if (xmlhttp.readyState==4 && xmlhttp.status != 200) {
// ....
}
}
xmlhttp.send();
关于javascript - 使用 Javascript 在客户端计算机上进行基于全文的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15654155/