Lorsque nous utilisons la fonction « instantané Web » de la plupart des moteurs de recherche Web, ils ajoutent une mise en évidence de mots clés à la page d'instantané renvoyée. Cela nous sera très pratique pour retrouver le contenu récupéré dans la page Web. La mise en évidence des mots clés des instantanés Google intègre également la fonction de segmentation des mots, et différents mots sont colorés dans des couleurs différentes. Cependant, en raison de %!#^*&$!, l'instantané de la page Web de Google est très instable, ajoutons donc nous-mêmes cette fonction de mise en évidence de mots clés.
Comme indiqué ci-dessous, lorsque nous avons recherché le mot clé : apache asp.net dans Google, les résultats étaient :
Après avoir cliqué sur le lien du résultat et accédé à notre propre page, si nous mettons en évidence les mots-clés suivants, cela permettra-t-il aux utilisateurs de trouver et de localiser plus facilement et rapidement le contenu qui les intéresse sur la page ?
Regardons de plus près, mais l'adresse dans IE est clairement : http://birdshome.cnblogs.com/archive/2005/11/17/Apache.html , alors comment peut-elle être mise en évidence dans la page et récupérée par la recherche moteur ? Et les mots-clés ? Ici, nous utilisons l'attribut referrer du document pour obtenir des informations sur le type de moteur de recherche et les mots clés. Par exemple, dans l'exemple ci-dessus, l'attribut document.referrer est : 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 . Nous analysons les mots-clés du moteur de recherche spécifié via JavaScript, puis exploitons l'objet DOM de la page pour réaliser la fonction de mise en évidence. Cependant, pour les mots-clés chinois longs et consécutifs, cette solution de mise en évidence côté client ne peut pas fournir de fonction de segmentation des mots, ce qui est un problème.
Le code pour implémenter spécifiquement la mise en évidence des mots-clés de recherche sur la page actuelle est le suivant : placez-le simplement dans l'événement document.body.onload de la page et appelez-le :) fonction FriendlyDisplayForSearch().
{
var url = new UrlBuilder(document.referrer);
si (url.m_Success)
{
var hôte = url.m_Host.toLowerCase();
si ( host.indexOf('.google.') != -1 )
{
var mots-clés = url.GetValue('q', 'UTF8');
si (mots-clés)
{
var ht = nouveau HighlightText();
ht.Execute(mots-clés);
}
}
sinon if ( host.indexOf('.baidu.') != -1 )
{
}
}
}// En raison de la relation entre l'encodage et la fréquence d'utilisation, actuellement seule la
fonction du moteur de recherche Google HighlightText(range)
est effectuée
{
si (plage)
{
this.m_Range = plage ;
}
autre
{
this.m_Range = document.body.createTextRange();
}
this.m_Keyword = '';
this.toString = fonction()
{
return '[classe HightlightText]';
} ;
}
HighlightText.prototype.Execute = fonction (mot clé)
{
si (mot clé)
{
this.m_Keyword = mot-clé ;
}
si ( this.m_Range && this.m_Keyword )
{
var séparateur = ' ';
si ( this.m_Keyword.indexOf(' ') == -1 )
{
séparateur = '+';
}
var mots-clés = this.m_Keyword.split(separater);
var bookmark = this.m_Range.getBookmark();
pour ( var i=0 ; i < mots-clés.longueur ; ++i )
{
var mot-clé = mots-clés[i];
if (mot-clé && mot-clé.longueur > 1)
{
while(this.m_Range.findText(mots-clés[i]))
{
this.m_Range.execCommand('ForeColor', 'false', 'highlighttext');
this.m_Range.execCommand('BackColor', 'false', 'highlight');
this.m_Range.collapse(false);
}
this.m_Range.moveToBookmark(signet);
}
}
}
}