عندما نستخدم وظيفة "لقطة الويب" في معظم محركات بحث الويب، فإنها ستضيف تمييزًا للكلمات الرئيسية إلى صفحة اللقطة التي تم إرجاعها. سيكون هذا مناسبًا جدًا بالنسبة لنا للعثور على المحتوى المسترد في صفحة الويب. يتضمن تمييز الكلمات الرئيسية في لقطات Google أيضًا وظيفة تجزئة الكلمات، ويتم تلوين الكلمات المختلفة بألوان مختلفة. ومع ذلك، نظرًا لـ %!#^*&$!، فإن لقطة صفحة الويب الخاصة بـ Google غير مستقرة للغاية، لذلك دعونا نضيف وظيفة تسليط الضوء على الكلمة الرئيسية هذه بأنفسنا.
كما هو موضح أدناه، عندما بحثنا عن الكلمة الأساسية: Apache asp.net في جوجل، كانت النتائج:
بعد النقر على رابط النتيجة والانتقال إلى صفحتنا الخاصة، إذا قمنا بتسليط الضوء على الكلمات الرئيسية التالية، فهل سيسهل ذلك على المستخدمين العثور بسرعة على المحتوى محل الاهتمام وتحديد موقعه على الصفحة؟
دعونا نلقي نظرة فاحصة، ولكن العنوان في IE هو بوضوح: http://birdshome.cnblogs.com/archive/2005/11/17/Apache.html ، فكيف يمكن إبرازه في الصفحة واسترجاعه عن طريق البحث المحرك ماذا عن الكلمات الرئيسية؟ نستخدم هنا سمة المُحيل للمستند للحصول على معلومات عن نوع محرك البحث والكلمات الرئيسية. على سبيل المثال، في المثال أعلاه، السمة document.referrer هي: 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 . نقوم بتحليل الكلمات الرئيسية لمحرك البحث المحدد من خلال JavaScript، ثم نقوم بتشغيل كائن DOM للصفحة لتحقيق وظيفة التمييز. ومع ذلك، بالنسبة للكلمات الرئيسية الصينية المتتالية الطويلة، لا يمكن أن يوفر حل التمييز من جانب العميل هذا وظيفة تجزئة الكلمات، وهي ذبابة في المرهم.
الكود الخاص بتنفيذ تسليط الضوء على الكلمة الرئيسية للبحث في الصفحة الحالية هو كما يلي، فقط ضعه في حدث document.body.onload الخاص بالصفحة وقم بتسميته :) function FriendlyDisplayForSearch().
{
var url = new UrlBuilder(document.referrer);
إذا (url.m_Success)
{
var host = url.m_Host.toLowerCase();
إذا ( host.indexOf('.google.') != -1 )
{
var الكلمات الرئيسية = url.GetValue('q', 'UTF8');
إذا (الكلمات الرئيسية)
{
var ht = new HighlightText();
ht.Execute(الكلمات الرئيسية);
}
}
وإلا إذا ( host.indexOf('.baidu.') != -1 )
{
}
}
}// نظرًا للعلاقة بين التشفير وتكرار الاستخدام، يتم حاليًا
وظيفة HighlightText(range)
فقط في محرك بحث Google
{
إذا (النطاق)
{
this.m_Range = range;
}
آخر
{
this.m_Range = document.body.createTextRange();
}
this.m_Keyword = '';
this.toString = الدالة ()
{
إرجاع "[فئة HightlightText]"؛
};
}
HighlightText.prototype.Execute = الوظيفة(الكلمة الرئيسية)
{
إذا (الكلمة الرئيسية)
{
this.m_Keyword = الكلمة الأساسية؛
}
إذا ( this.m_Range && this.m_Keyword )
{
فار فاصل = ' ';
إذا ( this.m_Keyword.indexOf(' ') == -1 )
{
فاصل = '+';
}
var الكلمات الرئيسية = this.m_Keyword.split(separater);
var bookmark = this.m_Range.getBookmark();
لـ ( فار i=0 ; i < الكلمات الرئيسية. الطول ; ++i )
{
var الكلمة = الكلمات الرئيسية[i];
إذا (الكلمة الرئيسية && طول الكلمة الرئيسية > 1)
{
بينما (this.m_Range.findText (الكلمات الرئيسية [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);
}
}
}
}