就像csdn发帖的一样
选中文本,然后点击相应的颜色按钮
选中的文本就会变成相应的颜色
怎么实现啊?
js或者jquery都可以.
document.selection.createRange().text="<font color='red'>不可以</font>"
这样不行.
不要复文本编辑器.
因为项目要控制文本在表格里输入的.
阿日前哦富文本功能太多了.我只要一个变色功能.
选中文本,然后点击相应的颜色按钮
选中的文本就会变成相应的颜色
怎么实现啊?
js或者jquery都可以.
document.selection.createRange().text="<font color='red'>不可以</font>"
这样不行.
不要复文本编辑器.
因为项目要控制文本在表格里输入的.
阿日前哦富文本功能太多了.我只要一个变色功能.
<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>
首先选中文本,再次是处理选中的文本(不是一个text或者textarea哦)
我也想知道在没有兼容问题的情况下如何实现这个的。等待高人
文字倒是可以放在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("&"+text+"&","<font color='red'>"+text+"</font>");
$('#txt').html(s);
}
//选中文字变绿色
function setGreen()
{
getWords();
document.selection.createRange().text="&"+text+"&";
var s=$('#txt').html();
s=s.replace("&"+text+"&","<font color='green'>"+text+"</font>");
$('#txt').html(s);
}
//选中文字变黄色
function setYellow()
{
getWords();
document.selection.createRange().text="&"+text+"&";
var s=$('#txt').html();
s=s.replace("&"+text+"&","<font color='yellow'>"+text+"</font>");
$('#txt').html(s);
}
</script>
<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");
<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>
textbox是不能变色的,可以给div加个属性contenteditable="true",让div的内容可编辑
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里呢?
不然的话整个网页的字体颜色都可以改变了.
再次感谢.
<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浏览器<!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>
Free_Wind22果然是个js高手啊.