2011-12-05 89 views
0

我有一個輸入標記,用於搜索頁面中的文本。 我有這個JavaScript:javascript:搜索文本

var TRange=null; 

function findString (str) { 
    if (parseInt(navigator.appVersion)<4) return; 
    var strFound; 
    if (window.find) { 

     // CODE FOR BROWSERS THAT SUPPORT window.find 
     strFound=self.find(str); 
     if (!strFound) { 
      strFound=self.find(str,0,1); 
      while (self.find(str,0,1)) continue; 
     } 
    } 
    else if (navigator.appName.indexOf("Microsoft")!=-1) { 

     // EXPLORER-SPECIFIC CODE 

     if (TRange!=null) { 
      TRange.collapse(false); 
      strFound=TRange.findText(str); 
      if (strFound) TRange.select(); 
     } 
     if (TRange==null || strFound==0) { 
      TRange=self.document.body.createTextRange(); 
      strFound=TRange.findText(str); 
      if (strFound) TRange.select(); 
     } 
    } 
    else if (navigator.appName=="Opera") { 
     $('#srchform2').hide(); 
     alert ("Il browser opera non è supportato") 
     return; 
    } 
    if (!strFound) alert ("testo non trovato!") 
    return; 
} 

,當它發現一個字也指出,與灰色的顏色! 我該如何改變這種顏色?

+0

我還沒有試過任何東西!我不知道該怎麼辦!這段代碼可以正常工作,找到這個詞,但用灰色突出顯示它們!我希望他以黃色突出顯示他們! – jury89

+2

這可能是一個系統顏色..你必須實現自己的高亮代碼。 –

+0

我該怎麼辦? – jury89

回答

2

根據您的瀏覽器,它可能會也可能不支持。這基本上是你可以做什麼:

::selection { 
     background: #ffb7b7; /* Safari */ 
     } 
::-moz-selection { 
     background: #ffb7b7; /* Firefox */ 
} 

::-webkit-selection { 
    background:#cc0000; /* Webkit */ 
} 
+0

它的作品!它非常簡單,但我沒有考慮它!非常感謝! – jury89

1

您可以使用CSS在現代瀏覽器更改所選文本的顏色:

::-moz-selection{ background: #080; color:#fff;} 
::selection { background:#080; color:#fff; } 

的jsfiddle:http://jsfiddle.net/GUC5d/

0

聽起來像你的問題實際上是:如何更改所選文字的顏色?

http://www.quirksmode.org/css/selection.html

但是,如果你真正想做的是突出發現的話,你可能想要包裝用CSS類,突出自己的喜好一個<span>元素的發現字。這樣,當用戶選擇其他東西時,突出顯示不會丟失。