就像csdn发帖的一样
选中文本,然后点击相应的颜色按钮
选中的文本就会变成相应的颜色
怎么实现啊?
js或者jquery都可以.
document.selection.createRange().text="<font color='red'>不可以</font>"
这样不行.
不要复文本编辑器.
因为项目要控制文本在表格里输入的.
阿日前哦富文本功能太多了.我只要一个变色功能.

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>New Document</TITLE>
    <script language="javascript">    function addColor() {
            document.getElementById("test").style.color = "red";
        }</script></HEAD><BODY >
    <table ><tbody id="listTab"></tbody>
    </table>
    <table>
    <tr>
    <td> <input name="" type="button" onClick="addColor();" value="点击"></td>
    </tr>
    </table>
    <div id="test">hahhaha</div>
    </BODY>
    </HTML>
      

  2.   

    1楼完全没有做到
    首先选中文本,再次是处理选中的文本(不是一个text或者textarea哦)
    我也想知道在没有兼容问题的情况下如何实现这个的。等待高人
      

  3.   

    1楼要是那样就简单了.
    文字倒是可以放在span里的,但是1楼你全部改变了.目前自己只有个折衷的方法:
    通过加特殊符号来替换 <script language="javascript" type="text/javascript">
        var text="";
        //获取鼠标选中的文字
        function getWords()
        {
            //判断浏览器
        if(navigator.appName=="Microsoft Internet Explorer"){
        text=document.selection.createRange().text;   
        }else{
        text=window.getSelection();
        }   
       
        }
        
        //选中文字变红色
        function setRed()
        {
            getWords();
            document.selection.createRange().text="&"+text+"&";
            var s=$('#txt').html();
            s=s.replace("&amp;"+text+"&amp;","<font color='red'>"+text+"</font>");
            $('#txt').html(s);
        }
        //选中文字变绿色
        function setGreen()
        {
            getWords();
            document.selection.createRange().text="&"+text+"&";
            var s=$('#txt').html();
            s=s.replace("&amp;"+text+"&amp;","<font color='green'>"+text+"</font>");
            $('#txt').html(s);
        }
        //选中文字变黄色
        function setYellow()
        {
             getWords();
            document.selection.createRange().text="&"+text+"&";
            var s=$('#txt').html();
            s=s.replace("&amp;"+text+"&amp;","<font color='yellow'>"+text+"</font>");
            $('#txt').html(s);
        }
        </script>
      

  4.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>new document</title>
    <script type="text/javascript">
    function setColor(){
    if(document.all){
    var tr = document.selection.createRange();
    tr.execCommand("ForeColor", false, "#FF0000");
    }else{
    var tr = window.getSelection().getRangeAt(0);
    var span = document.createElement("span");
    span.style.cssText = "color:#ff0000";
    tr.surroundContents(span);
    }
    }
    </script>
    </head>
    <body>
    <div>fdjlksafjd;slafjd;slakfjds</div><input type="button" onclick="setColor()" value="setColor" />
    </body>
    </html>
      

  5.   

    解决了,使用
    document.execCommand("ForeColor", true, "#BBDDCC"); 
      

  6.   

    <select name="" id="btn">
    <option value="red">红色</option>
        <option value="yellow">黄色</option>
    </select><textarea id="put"></textarea><div id="display"></div><script>
    var t = document.getElementById('put');
    var btn = document.getElementById('btn').options;
    btn.onclick = function(){
    var color = this.value ;
    if(window.getSelection) {
    if( (t.selectionStart != undefined) && (t.selectionEnd != undefined) ) {
    var text = t.value.substring(t.selectionStart, t.selectionEnd);
    alert(text);
    //document.getElementById('display').innerHTML = text ;
    //document.getElementById('display').style.color = color ;
    } else {
    return "";
    }
    } else {
     var text = document.selection.createRange().text ;
     document.getElementById('display').innerHTML = text ; 
     document.getElementById('display').style.color = color ;
    }}</script>
      

  7.   

    楼上的你们的代码可以吗?在ie和ff下都没有反应
      

  8.   

    Free_Wind22的正解。而且这段代码实用性非常强。
      

  9.   

    如果是textbox的话,执行没有效果。
      

  10.   

    你好,你试了吗?我在ff下是报错的,在ie下是没有效果的,不知道怎么回事
      

  11.   


    textbox是不能变色的,可以给div加个属性contenteditable="true",让div的内容可编辑
      

  12.   

    非常感谢.
      if(document.all){
                var tr = document.selection.createRange();
                tr.execCommand("ForeColor", false, "#FF0000");
            }else{
                var tr = window.getSelection().getRangeAt(0);
                var span = document.createElement("span");
                span.style.cssText = "color:#ff0000";
                tr.surroundContents(span);
            }这个else有什么用?
    else感觉去掉也没有影响效果啊?
    还有可否把选择区域限定在div里呢?
    不然的话整个网页的字体颜色都可以改变了.
    再次感谢.
      

  13.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
        <title>new document</title>
        <script type="text/javascript">
        function setColor(){
            if(document.all){
                var tr = document.selection.createRange();
     if(tr.text==""){alert("未选中任务文字!")};
                tr.execCommand("ForeColor", false, "#FF0000");
            }else{
                var tr = window.getSelection();
    if(tr==""){alert("未选中任务文字!")};
                var rang=tr.getRangeAt(0); 
                var span = document.createElement("span");
                span.style.cssText = "color:#ff0000";
                tr.surroundContents(span);
            }
        }
        </script>
    </head>
    <body>
    <div>fdjlksafjd;slafjd;slakfjds</div><input type="button" onclick="setColor()" value="setColor" />
    </body>
    </html>
      

  14.   

    这个是个兼容程序,else后面是在FF下运行的,而你们说的不能运行那是你们没选中任何文字,所以看不到效果,其实7#的代码是正确和可行的
      

  15.   

    处理了下,不是选中editor中的内容就不会变色
    else中的代码是为了兼容FF浏览器<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
        <title>new document</title>
        <script type="text/javascript">
        function setColor(){
            if(document.all){
                var tr = document.selection.createRange();
    if(tr.parentElement().id != "editor"){
    return;
    }
                tr.execCommand("ForeColor", false, "#FF0000");
            }else{
                var tr = window.getSelection().getRangeAt(0);
    if(tr.commonAncestorContainer.parentNode.id != "editor"){
    return;
    }
                var span = document.createElement("span");
                span.style.cssText = "color:#ff0000";
                tr.surroundContents(span);
            }
        }
        </script>
    </head>
    <body>
    <div id="editor" contenteditable="true">fdjlksafjd;slafjd;slakfjds</div>
    <div>123456</div>
    <input type="button" onclick="setColor()" value="setColor" />
    </body>
    </html>
      

  16.   

    结贴,
    Free_Wind22果然是个js高手啊.