天天看點

利用搜尋引擎引用來高亮頁面關鍵字

  當我們在使用大多數的網頁搜尋引擎的"網頁快照"功能時,他們都會在傳回的快照頁面中加入關鍵字高亮的功能。這将非常友善我們查找網頁中被檢索的内容,其中google快照的關鍵字高亮還融入了分詞功能,不同的詞着以不同的顔色。可是由于%!#^*&$!的原因,google的網頁快照非常的不穩定,那麼我們就自己來加上這個關鍵字高亮功能吧。

如下圖,當我們在google中搜尋了關鍵字:apache asp.net後的結果:

點選結果的連接配接并導航到我們自己的頁面後,如果我們加以如下關鍵字高亮,是否會對使用者快速查找和定位頁面感興趣的内容,提供友善呢?

具體實作目前頁面被檢索關鍵字高亮的代碼如下,放入頁面的document.body.onload事件中調用就行了:)

利用搜尋引擎引用來高亮頁面關鍵字

function FriendlyDisplayForSearch()

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

{

利用搜尋引擎引用來高亮頁面關鍵字

    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 ( keywords )

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

                  var ht = new HighlightText();

利用搜尋引擎引用來高亮頁面關鍵字

                  ht.Execute(keywords);

利用搜尋引擎引用來高亮頁面關鍵字

             }

利用搜尋引擎引用來高亮頁面關鍵字

         }

利用搜尋引擎引用來高亮頁面關鍵字

         else if ( host.indexOf('.baidu.') != -1 )

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

         }    

利用搜尋引擎引用來高亮頁面關鍵字

    }   

利用搜尋引擎引用來高亮頁面關鍵字

}

//

由于編碼和使用頻率的關系,目前隻做了google搜尋引擎

利用搜尋引擎引用來高亮頁面關鍵字

function HighlightText(range)

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

    if ( range )

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

         this.m_Range = range;

利用搜尋引擎引用來高亮頁面關鍵字

    }

利用搜尋引擎引用來高亮頁面關鍵字

    else

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

         this.m_Range = document.body.createTextRange();

利用搜尋引擎引用來高亮頁面關鍵字

    }     

利用搜尋引擎引用來高亮頁面關鍵字

    this.m_Keyword = '';

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

    this.toString = function()

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

         return '[class HightlightText]';

利用搜尋引擎引用來高亮頁面關鍵字

    };       

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

HighlightText.prototype.Execute = function(keyword)

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

     if ( keyword )

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

          this.m_Keyword = keyword;

利用搜尋引擎引用來高亮頁面關鍵字

     }

利用搜尋引擎引用來高亮頁面關鍵字

     if ( this.m_Range && this.m_Keyword )

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

         var separater = ' ';

利用搜尋引擎引用來高亮頁面關鍵字

         if ( this.m_Keyword.indexOf(' ') == -1 ) 

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

              separater = '+';

利用搜尋引擎引用來高亮頁面關鍵字

         }   

利用搜尋引擎引用來高亮頁面關鍵字

         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 ( keyword && keyword.length > 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);

利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字
利用搜尋引擎引用來高亮頁面關鍵字

    相關文章:

本文轉自部落格園鳥食軒的部落格,原文連結:http://www.cnblogs.com/birdshome/,如需轉載請自行聯系原部落客。

繼續閱讀