本人做了一个站内搜索,想像百度那样 把所有页面中的关键字 都变成红色通过JavaScript实现

解决方案 »

  1.   

    符合条件的内容加上font标签就是了,不过百度好象不是通过JS做的
      

  2.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    </head><body>
    中国美国日本
    台湾
    </body>
    <script>
    var content = document.body.innerHTML;
    content = content.replace(/(中国|日本)/g,"<font color=blue>$1</font>");
    document.body.innerHTML = content;
    </script>
    </html>
      

  3.   

    上面颜色变错了,LZ改下吧
    content = content.replace(/(中国|日本)/g,"<font color=red>$1</font>");
      

  4.   

    我是这样写的 但只替换了 第一个 后面的没变 
    var key = document.getElementById("txtKey").value;
        var html = document.getElementById("context").innerHTML;
        html = html.replace(key, " <font color='red'>" + key + "</font>");
        document.getElementById("context").innerHTML = html;
    不用js也行 能实现就行 就是最好
      

  5.   

    我的key是个变量 (/(中国|日本)/g 这里不知道这么改
      

  6.   


    document.documentElement.innerHTML.replace(/your keyword reg/, "<font color='red'>"+your keyword+"<font>");
      

  7.   

    问题就是 我的key是个变量 
      

  8.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    </head><body>
    中国美国日本
    台湾
    </body>
    <script>
    var content = document.body.innerHTML;
    var key = ["中国","日本"];//可以1个,可以多个
    var str = "";
    for(var i=0;i<key.length;i++){
    if(str!="")str+="|";
    str += key[i];
    }
    content = content.replace(eval("/("+str+")/g"),"<font color=blue>$1</font>");
    document.body.innerHTML = content;
    </script>
    </html>
      

  9.   

    //css
    .key_word{font-color:red;}
    //js
    /*
    *@where is element where to search the keywords
    *@keys_arr is the keywords array
    *@stylename is the css class name
    */
    function sign_keywords(where,keys_arr,stylename)
    {
      var content = where.innerHTML;
      var keyswords = '('+keys_arr.join('|')+')';
      var regex = new RegExp(keyswords, 'g');
      content = content.replace(regex,'<span class='+stylename+'>$1</span>');
      where.innerHTML = content; }
    sign_keywords(your_element,['i','a','w'],'hover');
      

  10.   

    谢谢 lihui_shine 大哥 谢谢大家 ok了 不过请问 lihui_shine 大哥eval()是什么意思,有什么用?
      

  11.   


    var content = document.body.innerHTML;
    var key = ["中国","日本"];//可以1个,可以多个
    content = content.replace(new RegExp(key.join("|"),"g"),"<font color=blue>$1</font>");
    document.body.innerHTML = content;
      

  12.   

    eval就是执行一个JS语句,eval("/(中国|日本)/g");将获得一个正则
      

  13.   

    忘记加括号 了var content = document.body.innerHTML;
    var key = ["中国","日本"];//可以1个,可以多个
    content = content.replace(new RegExp("("+key.join("|")+")","g"),"<font color=blue>$1</font>");
    document.body.innerHTML = content;
      

  14.   

    如果是汉字还好,如果是个字母  a那<table>标签不被变了么????页面不乱么?