Cuando utilizamos la función "instantánea web" de la mayoría de los motores de búsqueda web, agregarán palabras clave resaltadas a la página de instantáneas devuelta. Esto será muy conveniente para nosotros para encontrar el contenido recuperado en la página web. El resaltado de palabras clave de las instantáneas de Google también incorpora la función de segmentación de palabras, y las diferentes palabras están coloreadas en diferentes colores. Sin embargo, debido a %!#^*&$!, la instantánea de la página web de Google es muy inestable, así que agreguemos esta función de resaltado de palabras clave nosotros mismos.
Como se muestra a continuación, cuando buscamos la palabra clave: apache asp.net en Google, los resultados fueron:
Después de hacer clic en el enlace del resultado y navegar a nuestra propia página, si resaltamos las siguientes palabras clave, ¿facilitará a los usuarios encontrar y localizar rápidamente el contenido de interés en la página?
Echemos un vistazo más de cerca, pero la dirección en IE es claramente: http://birdshome.cnblogs.com/archive/2005/11/17/Apache.htmlEntonces , ¿cómo se puede resaltar en la página y recuperar mediante la búsqueda? motor? ¿Qué pasa con las palabras clave? Aquí utilizamos el atributo de referencia del documento para obtener información sobre el tipo de motor de búsqueda y las palabras clave. Por ejemplo, en el ejemplo anterior, el atributo document.referrer es: 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 . Analizamos las palabras clave del motor de búsqueda especificado a través de JavaScript y luego operamos el objeto DOM de la página para realizar la función de resaltado. Sin embargo, para palabras clave chinas consecutivas durante mucho tiempo, esta solución de resaltado del lado del cliente no puede proporcionar la función de segmentación de palabras, lo cual es una mosca en el ungüento.
El código para implementar específicamente la palabra clave de búsqueda resaltada en la página actual es el siguiente. Simplemente colóquelo en el evento document.body.onload de la página y llámelo :) función FriendlyDisplayForSearch().
{
var url = nuevo UrlBuilder(document.referrer);
si (url.m_Success)
{
var host = url.m_Host.toLowerCase();
si ( host.indexOf('.google.') != -1 )
{
var palabras clave = url.GetValue('q', 'UTF8');
si (palabras clave)
{
var ht = nuevo Texto Resaltado();
ht.Execute(palabras clave);
}
}
de lo contrario, si (host.indexOf('.baidu.')! = -1)
{
}
}
}// Debido a la relación entre codificación y frecuencia de uso, actualmente solo se realiza la
función del motor de búsqueda de Google HighlightText(range)
{
si (rango)
{
this.m_Range = rango;
}
demás
{
this.m_Range = document.body.createTextRange();
}
this.m_Keyword = '';
this.toString = función()
{
return '[clase Texto resaltado]';
};
}
HighlightText.prototype.Execute = función(palabra clave)
{
si (palabra clave)
{
this.m_Keyword = palabra clave;
}
si (this.m_Range && this.m_Keyword)
{
var separador = ' ';
si (this.m_Keyword.indexOf('') == -1)
{
separador = '+';
}
var palabras clave = this.m_Keyword.split(separador);
marcador var = this.m_Range.getBookmark();
para (var i=0; i <palabras clave.longitud; ++i)
{
var palabra clave = palabras clave[i];
si (palabra clave && palabra clave.longitud > 1)
{
while(this.m_Range.findText(palabras clave[i]))
{
this.m_Range.execCommand('ForeColor', 'false', 'texto resaltado');
this.m_Range.execCommand('BackColor', 'falso', 'resaltado');
this.m_Range.collapse (falso);
}
this.m_Range.moveToBookmark(marcador);
}
}
}
}