var rg = null;
if(window.getSelection) { rg = window.getSelection().getRangeAt(0);}
else if(document.getSelection) { rg = document.getSelection().getRangeAt(0);}
//if(rg.toString() != "")
if(rg){
var dom = rg.startContainer;
var val = dom.nodeValue;
var begin = rg.startOffset;
var end = rg.endOffset;
var pre = 0;
var next = 0;
if($.trim(val[begin]).length > 0){
//向前搜索
for(var i = 0; i < 30; ++i){
if(begin == i || $.trim(val[begin - i]).length == 0 || val[begin - i].match(/[,?!.;]{1,}/g)){
pre = i - 1;
break;
}
}
//向后搜索
for(var i = 0; i < 30; i++){
if($.trim(val[end + i]).length == 0 || val[end + i].match(/[,?!.;]{1,}/g)){
next = i;
break;
}
}
rg.setStart(rg.startContainer,begin - pre);
rg.setEnd(rg.endContainer,end + next);
var el = document.createElement("span");
rg.surroundContents(el);
$(el).addClass("select");
//alert(el.innerHTML);
}
}上面这个方法能是通过加span加css样式来选中一个单词的,能不能不通过加span加css样式选中呢?
IE里可以
var rng = document.body.createTextRange();
rng.select();
火狐和谷歌能像ie这样选中一个单词吗?
if(window.getSelection) { rg = window.getSelection().getRangeAt(0);}
else if(document.getSelection) { rg = document.getSelection().getRangeAt(0);}
//if(rg.toString() != "")
if(rg){
var dom = rg.startContainer;
var val = dom.nodeValue;
var begin = rg.startOffset;
var end = rg.endOffset;
var pre = 0;
var next = 0;
if($.trim(val[begin]).length > 0){
//向前搜索
for(var i = 0; i < 30; ++i){
if(begin == i || $.trim(val[begin - i]).length == 0 || val[begin - i].match(/[,?!.;]{1,}/g)){
pre = i - 1;
break;
}
}
//向后搜索
for(var i = 0; i < 30; i++){
if($.trim(val[end + i]).length == 0 || val[end + i].match(/[,?!.;]{1,}/g)){
next = i;
break;
}
}
rg.setStart(rg.startContainer,begin - pre);
rg.setEnd(rg.endContainer,end + next);
var el = document.createElement("span");
rg.surroundContents(el);
$(el).addClass("select");
//alert(el.innerHTML);
}
}上面这个方法能是通过加span加css样式来选中一个单词的,能不能不通过加span加css样式选中呢?
IE里可以
var rng = document.body.createTextRange();
rng.select();
火狐和谷歌能像ie这样选中一个单词吗?
就是div里一段文字,我想单击鼠标选中一个单词,就和双击一样的效果(双击会选中整个单词的)
火狐和谷歌浏览器里用什么来代替range.select()请高手帮忙解答一下
http://topic.csdn.net/u/20081111/20/e8c0a451-7e00-427e-906c-98e22fce6c4a.html
我不想加span
因为加span和样式后会影响其他的功能
<html>
<head>
<title>selectedText.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<div id="dvCT">中国人民共和国共和
</div>
<input type="button" value="清除颜色" onclick="$('dvCT').innerHTML=removeHTML($('dvCT').innerHTML)" />
<script language="javascript">
function $(Id){return document.getElementById(Id);}
function removeHTML(v){return v.replace(/<[^>]+>/g,'');}
document.onmouseup=function(){
var isIE=!!document.all;
if(isIE){
var rng=document.selection.createRange();
if(rng.text!='')rng.pasteHTML(rng.text.fontcolor('#ff0000'));
} else {
var s = window.getSelection();
if(s.toString()!=''){
var font=document.createElement('font');
font.color='#ff0000';
font.innerHTML=s;
s.getRangeAt(0).surroundContents(font);
s.removeAllRanges();
}
}
}
</script>
</body>
</html>