天天看点

高亮度显示搜索关键字

< html >

< script  url ="UrlBuilder.js" ></ script >

< body >

< script >

// 测试代码 

function  UrlTest(){

     var  myht = new  HighlightText();

    myht.Execute( " lqscoke " ); 

}

// ******高亮度显示关键字******

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 ' ,  ' red ' );

                       this .m_Range.execCommand( ' BackColor ' ,  ' false ' ,  ' highlight ' ); 

                       this .m_Range.collapse( false );

                 }

                  this .m_Range.moveToBookmark(bookmark);

             }

         }

     }

}

// ******高亮度显示关键字******

</ script >

< script  language ="javascript" >

// //------通过Google搜索,获取关键字,并高亮度显示-------///

function  FriendlyDisplayForSearch()

{

     var  myurltest = " http://www.google.com/search?hl=zh-CN&newwindow=1&q=%E6%9D%8E%E6%B3%89%E7%94%9F&lr= " ;

     var  url  =   new  UrlBuilder(myurltest);

     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  )

         {

         }    

    }   

}

function  TestUrlBuilder()

{

     var  url  =   new  UrlBuilder( ' http://www.google.com/search?hl=zh-CN&newwindow=1&q=%E6%9D%8E%E6%B3%89%E7%94%9F&lr= ' );

// http://birdshome.cnblogs.com:8080/index.aspx?hl=zh-CN&newwindow=1&q=#abc

    url.GetValue( '' ); 

     var  strParams  =   '' ; 

     for  (  var  key  in  url.m_Params )

    {

         strParams  +=  key  +   '  =  '   +  decodeURI(url.m_Params[key])  +   ' ' ;

    } 

    alert( ' m_Href = '   +  url.m_Href 

         +   ' m_Host = '   +  url.m_Host

         +   ' m_Hostname = '   +  url.m_Hostname

         +   ' m_Port = '   +  url.m_Port

         +   ' m_Protocol = '   +  url.m_Protocol

         +   ' m_Path = '   +  url.m_Path

         +   ' m_Search = '   +  url.m_Search

         +   ' m_Hash = '   +  url.m_Hash

         +   ' '   +  strParams);    

}

</ script >

< script >

function  UrlBuilder(url)

{

     this .m_Href  =   null ;

     this .m_Host  =   null ;

     this .m_Hostname  =   null ; 

     this .m_Port  =   null ;

     this .m_Protocol  =   null ;

     this .m_Path  =   null ;

     this .m_Search  =   null ;

     this .m_Hash  =   null ;

     this .m_Params  =   null ; 

     this .m_Sucess  =   false ; 

     if  ( url )  this .Parse(url);

     this .toString  =   function ()

    {

          return   ' [class UrlBuilder] ' ;

    };     

}

UrlBuilder.prototype.Parse  =   function (url)

{

     var  m  =  url.match( / (w{ 3 , 5 }:) / / ([ ^ .] + ( ? :.[ ^ .: / ] + ) + )( ? ::(d{ 1 , 5 })) ? /?/ );

     if  ( m )

    {

          this .m_Protocol  =  m[ 1 ];

          this .m_Hostname  =  m[ 2 ]; 

          this .m_Port  =  m[ 3 ]; 

          if  (  this .m_Port ) 

         {

              this .m_Host  =   this .m_Hostname  +   ' : '   +   this .m_Port;

         }

          else

         {  

              this .m_Host  =  m[ 2 ];

         }

          var  indexHash  =  url.indexOf( ' # ' );

          if  ( indexHash  !=   - 1  )

         {

              this .m_Hash  =  url.substr(indexHash);

         }

          else

         {

              this .m_Hash  =   '' ;

         }        

          var  indexParams  =  url.indexOf( ' ? ' );

          if  ( indexParams  !=   - 1  )

         {

              if  ( indexHash  !=   - 1  )

             {

                   this .m_Search  =  url.substring(indexParams, indexHash);

             }

              else

             { 

                   this .m_Search  =  url.substr(indexParams);

             }

              this .m_Path  =  url.substr(indexParams);

         }

          else

         {

              this .m_Search  =   '' ;

         }

          this .m_Success  =   true ; 

          this .m_Params  =   null ; 

          this .m_Href  =  url;

    }

};

UrlBuilder.prototype.GetValue  =   function (key, encoding)

{

     if  (  ! this .m_Params )

    {

          if  (  this .m_Search )

         {

              this .m_Params  =  {}; 

              var  search  =   this .m_Search.substring( 1 );

              var  keyValues  =  search.split( ' & ' );

              for  (  var  i = 0  ; i  <  keyValues.length ;  ++ i )

             {

                   var  keyValue  =  keyValues[i];

                   var  index  =  keyValue.indexOf( ' = ' );

                   if  ( index  !=   - 1  )

                  {

                        this .m_Params[keyValue.substring( 0 , index)]  =  keyValue.substr(index + 1 );

                  }

                   else

                  {

                        this .m_Params[keyValue]  =   '' ;

                  }

              }  

         }

    }

    encoding  =  encoding  ||   '' ; 

     switch (encoding.toUpperCase())

    {

          case   ' UTF8 '  :

         {

               return  decodeURI( this .m_Params[key]);

         }

          case   ' UNICODE '  :

         {

               return  unescape( this .m_Params[key]);

         }

          case   ' GB2312 '  :  //  need VBScript function Chr()

          default  :

         {

               return   this .m_Params[key];

         }

    }  

}

// //------通过Google搜索,获取关键字,并高亮度显示-------///

</ script >

< input  type ="button"  value ="Click"  onclick =FriendlyDisplayForSearch() >

< input  type ="button"  value ="Click_Test"  onclick ="UrlTest()"

<p >

李泉生

李泉生lqscoke 李泉lqscoke 生lqscoke 李泉生lqscoke 李lqscoke 泉生李泉生

李泉生lqscoke 李泉生

lqscoke 

lqscoke 

lqscoke

lqsco李泉生ke lqscoke 

lqscoke lqs李泉生coke lqscoke lqscoke  

</ p >

</ body >

</ html >

继续阅读