2011-12-05 67 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>元素的发现字。这样,当用户选择其他东西时,突出显示不会丢失。