Wenn wir die „Web-Snapshot“-Funktion der meisten Web-Suchmaschinen verwenden, fügen sie der zurückgegebenen Snapshot-Seite eine Schlüsselworthervorhebung hinzu. Dies ist für uns sehr praktisch, um den abgerufenen Inhalt auf der Webseite zu finden. Die Schlüsselworthervorhebung von Google-Snapshots umfasst auch die Wortsegmentierungsfunktion, und verschiedene Wörter werden in verschiedenen Farben eingefärbt. Allerdings ist der Webseiten-Snapshot von Google aufgrund von %!#^*&$! sehr instabil, also fügen wir diese Funktion zur Keyword-Hervorhebung selbst hinzu.
Wie unten gezeigt, waren die Ergebnisse, als wir in Google nach dem Schlüsselwort „Apache asp.net“ suchten:
Wenn wir nach dem Klicken auf den Link des Ergebnisses und der Navigation zu unserer eigenen Seite die folgenden Schlüsselwörter hervorheben, wird es für Benutzer dann einfacher, den für sie interessanten Inhalt auf der Seite schnell zu finden und zu lokalisieren?
Werfen wir einen genaueren Blick darauf, aber die Adresse im IE lautet eindeutig: http://birdshome.cnblogs.com/archive/2005/11/17/Apache.html . Wie kann sie also auf der Seite hervorgehoben und durch die Suche abgerufen werden? Motor? Was ist mit den Schlüsselwörtern? Hier verwenden wir das Referrer-Attribut des Dokuments, um Suchmaschinentyp- und Schlüsselwortinformationen zu erhalten. Im obigen Beispiel lautet das Attribut document.referrer beispielsweise: http://www.google.com/search?hl=zh-CN&newwindow=1&q=apache+asp.net&btnG=%E6%90%9C%E7% B4%A2&lr =lang_zh-CN%7Clang_zh-TW . Wir analysieren die Schlüsselwörter der angegebenen Suchmaschine über JavaScript und bedienen dann das Seiten-DOM-Objekt, um die Hervorhebungsfunktion zu realisieren. Für lange aufeinanderfolgende chinesische Schlüsselwörter kann diese clientseitige Hervorhebungslösung jedoch keine Wortsegmentierungsfunktion bereitstellen, was ein Wermutstropfen ist.
Der Code zur spezifischen Implementierung der Suchschlüsselworthervorhebung auf der aktuellen Seite lautet wie folgt: Fügen Sie ihn einfach in das document.body.onload-Ereignis der Seite ein und rufen Sie die Funktion FriendlyDisplayForSearch() auf.
{
var url = new UrlBuilder(document.referrer);
if (url.m_Success)
{
var host = url.m_Host.toLowerCase();
if ( host.indexOf('.google.') != -1 )
{
var keywords = url.GetValue('q', 'UTF8');
if(Schlüsselwörter)
{
var ht = new HighlightText();
ht.Execute(keywords);
}
}
sonst wenn ( host.indexOf('.baidu.') != -1 )
{
}
}
}// Aufgrund des Zusammenhangs zwischen Kodierung und Nutzungshäufigkeit wird derzeit nur die Google-Suchmaschinenfunktion
HighlightText(range)
ausgeführt
{
if(Bereich)
{
this.m_Range = Bereich;
}
anders
{
this.m_Range = document.body.createTextRange();
}
this.m_Keyword = '';
this.toString = function()
{
return '[Klasse HightlightText]';
};
}
HighlightText.prototype.Execute = function(keyword)
{
if(Schlüsselwort)
{
this.m_Keyword = Schlüsselwort;
}
if ( this.m_Range && this.m_Keyword )
{
var separater = ' ';
if ( this.m_Keyword.indexOf(' ') == -1 )
{
Trennzeichen = '+';
}
var keywords = this.m_Keyword.split(separater);
var bookmark = this.m_Range.getBookmark();
for ( var i=0 ; i < keywords.length ; ++i )
{
var keyword = keywords[i];
if (Schlüsselwort && Schlüsselwort.Länge > 1)
{
while(this.m_Range.findText(keywords[i]))
{
this.m_Range.execCommand('ForeColor', 'false', 'highlighttext');
this.m_Range.execCommand('BackColor', 'false', 'highlight');
this.m_Range.collapse(false);
}
this.m_Range.moveToBookmark(bookmark);
}
}
}
}