เมื่อเราใช้ฟังก์ชัน "ภาพรวมของเว็บ" ของเครื่องมือค้นหาเว็บส่วนใหญ่ เครื่องมือค้นหาจะเพิ่มคำหลักที่เน้นไปที่หน้าภาพรวมที่ส่งคืน วิธีนี้จะสะดวกมากสำหรับเราในการค้นหาเนื้อหาที่ดึงมาในหน้าเว็บ การเน้นคำหลักของ Google Snapshots ยังรวมเอาฟังก์ชันการแบ่งส่วนคำด้วย และคำที่ต่างกันจะถูกระบายสีด้วยสีที่ต่างกัน อย่างไรก็ตาม เนื่องจาก %!#^*&$! สแนปชอตหน้าเว็บของ Google จึงไม่เสถียรมาก ดังนั้นเรามาเพิ่มฟังก์ชันเน้นคำหลักนี้กันดีกว่า
ดังที่แสดงด้านล่าง เมื่อเราค้นหาคำหลัก: apache asp.net ใน Google ผลลัพธ์คือ:
หลังจากคลิกลิงก์ผลลัพธ์แล้วไปยังหน้าเพจของเราเอง หากเราเน้นคีย์เวิร์ดต่อไปนี้ จะช่วยให้ผู้ใช้ค้นหาและค้นหาเนื้อหาที่สนใจในหน้านั้นได้ง่ายขึ้นหรือไม่
มาดูให้ละเอียดยิ่งขึ้น แต่ที่อยู่ใน 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 ของเพจแล้วเรียกมันว่า :) ฟังก์ชัน FriendlyDisplayForSearch()
-
var url = UrlBuilder ใหม่ (document.referrer);
ถ้า (url.m_Success)
-
var โฮสต์ = url.m_Host.toLowerCase();
ถ้า ( host.indexOf('.google.') != -1 )
-
คำหลัก var = url.GetValue('q', 'UTF8');
ถ้า(คำสำคัญ)
-
var ht = ใหม่ HighlightText();
ht.Execute(คำสำคัญ);
-
-
อย่างอื่นถ้า ( host.indexOf('.baidu.') != -1 )
-
-
-
}// เนื่องจากความสัมพันธ์ระหว่างการเข้ารหัสและความถี่ในการใช้งาน ขณะนี้มีเพียง
ฟังก์ชันเครื่องมือค้นหาของ Google HighlightText(range)
เท่านั้นที่ทำเสร็จแล้ว
-
ถ้า(ช่วง)
-
this.m_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 )
-
ตัวแยก var = ' ';
ถ้า ( this.m_Keyword.indexOf(' ') == -1 )
-
ตัวแยก = '+';
-
คำหลัก var = this.m_Keyword.split (คั่น);
var บุ๊คมาร์ค = this.m_Range.getBookmark();
สำหรับ ( var i=0 ; i < keywords.length ; ++i )
-
var คำหลัก = คำหลัก [i];
ถ้า (คำหลัก && keyword.length > 1)
-
ในขณะที่ (this.m_Range.findText (คำหลัก [i]))
-
this.m_Range.execCommand('ForeColor', 'false', 'highlighttext');
this.m_Range.execCommand('BackColor', 'false', 'highlight');
this.m_Range.collapse(เท็จ);
-
this.m_Range.moveToBookmark (บุ๊กมาร์ก);
-
-
-
-