2011-12-05 7 views
0

私はページ内のテキストを検索するために使用する入力タグを持っています。それは言葉を見つけたとき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; 
} 

が、それは灰色であることを指摘: 私はこのJavaScriptを持っています! この色を変更するにはどうすればよいですか?

+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

が鳴ります:選択したテキストの色を変更するにはどうすればいいですか?あなたが本当にやろうとしているが見つかった単語をハイライト表示している場合

あなたはおそらく、あなたの好みに浮き彫りにCSSクラスと<span>要素で見つかった単語をラップしたい、しかし

http://www.quirksmode.org/css/selection.htmlを参照してください。そうすれば、ユーザーが何か他のものを選択したときにハイライトが失われることはありません。