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

11

我希望有一个搜索引擎,只能搜索到我的网站。我目前有一些JavaScript代码,但它只能搜索特定页面上的单词。如果可能的话,我需要它搜索到我的网站内部链接。

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

<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="return findInPage(this.string.value); 在按钮标签中。)

2
不,实际上并没有一个。您需要一个服务器端程序来完成这项工作。 - idmean
3个回答

17

几点建议:

  1. 除非必要,不要重复造轮子 - 有一些开源库,例如 Tipue Search (Tipue Search) 等。
  2. 您可以使用 jQuery / ajax 的 $.load() 方法动态加载页面内容并搜索它们,同时在 DOM 和脚本中保持相同的页面。
  3. NodeJS 也是一个不错的选择,但可能会过度。

希望这可以帮到您!


4

1
由于您在内部网络中,而且所有页面都在同一服务器上,因此我认为可以依次对每个页面进行XMLHttpRequest,将页面存储在变量中,然后在存储的页面上进行搜索。
可能有更多XMLHttpRequest经验的人会说这种方法的效率或有效性如何。

对于一个小型网站,你预计会进行大量的搜索查询,这不是一个坏主意(即值得下载所有页面并存储索引)。这是在假设有充分的理由不仅仅在服务器上执行此操作的情况下。 - Jim W says reinstate Monica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接