javascript - 使用 Javascript 在客户端计算机上进行基于全文的搜索

标签 javascript jquery regex dom full-text-search

我正在尝试在客户端计算机上实现基于文本的完整搜索功能。

我发现Lunr.js部分满足了我的要求,但它必须加载到像Apache这样的服务器上,然后它才能完美工作。

就我而言,客户端计算机不会安装任何服务器或数据库。目录中只会有一堆静态 HTML 文件,以及一个索引文件,该索引文件接受用户从搜索框输入的内容,搜索框会在这些静态 HTML 文件中搜索该字符串。

Google 搜索显示了我的项目中可能需要的一些有趣的单词:innerHtmlDOMiframesRegExp .

请根据您的回答提出我的疑问。提前致谢

最佳答案

我可以想到一种方法来做到这一点 - 您可以使用 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/

相关文章:

javascript - 需要垫片设置 - jquery.flot/jquery.flot.selection

java - 正则表达式无法捕获所有组

javascript - findOne 可以匹配第一个还是最后一个?

javascript - 如何使背景图像位置在所有分辨率下保持相同?

r - 根据 R 中的模式合并列

javascript - 对象数组中的 Lodash/下划线 : Check for a value within an array,

javascript - 使 jquery 灯箱工作

javascript - <a> 元素内的链接不起作用

regex - 左侧的非贪婪正则表达式

javascript - 正则表达式取消 html 代码与 javascript 的链接