首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js怎么实现选中文本后点击按钮变色

2012-03-06 
js如何实现选中文本后点击按钮变色就像csdn发帖的一样选中文本,然后点击相应的颜色按钮选中的文本就会变成

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

[解决办法]
<!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>


[解决办法]
1楼完全没有做到
首先选中文本,再次是处理选中的文本(不是一个text或者textarea哦)
我也想知道在没有兼容问题的情况下如何实现这个的。等待高人
[解决办法]
帮顶!
[解决办法]
抱歉看错了,呵呵....
[解决办法]

HTML code
<!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>
[解决办法]
解决了,使用
document.execCommand("ForeColor", true, "#BBDDCC");
[解决办法]
JScript code
<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> 


[解决办法]
首先调用选中的函数,得到选中的值,然后对选中的值进行绚烂颜色
[解决办法]
onmouseover
[解决办法]
楼上的你们的代码可以吗?在ie和ff下都没有反应
[解决办法]
Free_Wind22的正解。而且这段代码实用性非常强。
[解决办法]

探讨
HTML code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>new document</title>
<script type="text/javascript">
function setColor(){
if(documen……

[解决办法]
Free_Wind22
up
[解决办法]
探讨
Free_Wind22的正解。而且这段代码实用性非常强。

[解决办法]
探讨
textbox的话怎么解决啊?

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

[解决办法]
<!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>

[解决办法]
这个是个兼容程序,else后面是在FF下运行的,而你们说的不能运行那是你们没选中任何文字,所以看不到效果,其实7#的代码是正确和可行的
[解决办法]
up......
[解决办法]
处理了下,不是选中editor中的内容就不会变色
else中的代码是为了兼容FF浏览器
HTML code
<!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> 

热点排行