Javascript搜索引擎(搜索自己的网站)

时间:2014-01-27 16:43:49

标签: javascript html search

我希望有一个只搜索我自己网站的搜索引擎。我目前有一些JavaScript,但它只搜索该特定页面上的文字。如果可能的话,我需要它来搜索我网站中的链接。

我无法使用Google搜索引擎,因为我的网站位于内部Intranet上。

<SCRIPT language=JavaScript>
var NS4 = (document.layers);    
var IE4 = (document.all);
var win = window;    
var n   = 0;
function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
if (NS4) {
if (!win.find(str))
  while(win.find(str, false, true))
    n++;
else
  n++;
if (n == 0)
  alert("Not found.");
}
if (IE4) {
txt = win.document.body.createTextRange();
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
  txt.moveStart("character", 1);
  txt.moveEnd("textedit");
}
if (found) {
  txt.moveStart("character", -1);
  txt.findText(str);
  txt.select();
  txt.scrollIntoView();
  n++;
}
else {
  if (n > 0) {
    n = 0;
    findInPage(str);
  }
  else
    alert("Sorry, we couldn't find.Try again");
}
}
return false;
}
</SCRIPT>
  

(onsubmit =“返回findInPage(this.string.value);在按钮标记中。)

它非常适合搜索该页面,但我希望有一种方法可以搜索我网站上的所有页面。

3 个答案:

答案 0 :(得分:15)

很少有建议:

  1. 除非你必须,不要重新发明轮子 - 有开源搜索(Tipue Search)等开源库。
  2. 您可以使用jquery / ajax $ .load()动态加载页面内容并进行搜索,同时仍然保留在DOM和脚本所在的同一页面中。
  3. NodeJS也是一个很好的选择,但可能会过度杀戮。
  4. 希望这有帮助!

答案 1 :(得分:1)

当你在内联网上,并且可能你所有页面都在同一台服务器上时,我认为可以依次为每个页面创建XMLHttpRequest,将页面存储在变量中,然后进行搜索在存储的页面上。

可能有更多XMLHttpRequest经验的人会说这会有多高效或有效。

答案 2 :(得分:1)

您可以使用search-index。它可以在服务器和浏览器中运行。 An example on how to run it in the browserthe actual demo of it。您必须编写一个遍历您网站的爬虫/蜘蛛。我认为Lunr.js也会运作良好。

如果您的网站是JSON,则索引将是一项需要修复的小任务,或者您可以have a crawler running in the browser

免责声明:我正在搜索索引。