选中DIV的DOM节点与文本



/**
* @description 模拟鼠标选中页面文本。
* 把el{DOMElement}节点设置为选中状态。
* 如果text不为空,则仅选中el中的text文本。
* @author shawn
*/
function selectDomText(el,text) {
if(!el)
return;
if(text){
if(/MSIE ([^;]+)/.test(navigator.userAgent)){
var range = document.body.createTextRange();
range.moveToElementText(el);
var found = range.findText(text);
if(found){
range.execCommand('selectAll');
}
}else{
var t = el.firstChild;
if(t && t.nodeType == 3){
var range = document.createRange();
var str = t.nodeValue;
range.selectNode(t);
var idx = str.indexOf(text);
if(idx != -1){
var selObj = window.getSelection();
selObj.removeAllRanges();
range.setStart(t,idx);
range.setEnd(t,idx + text.length);
selObj.addRange(range);
}
}
}
}else{
if (window.getSelection) { // all browsers, except IE before version 9
var selection = window.getSelection ();
selection.selectAllChildren (el);
} else { // Internet Explorer before version 9
var range = document.body.createTextRange ();
range.moveToElementText (el);
range.select();
}
}
}
/**
*获取选中的文本,支持body/input/textarea元素。
*/
function getSelText(){
var selText = "";
if (window.getSelection) { // all browsers, except IE before version 9
if (document.activeElement &&
(document.activeElement.tagName.toLowerCase () == "textarea" ||
document.activeElement.tagName.toLowerCase () == "input"))
{
var text = document.activeElement.value;
selText = text.substring (document.activeElement.selectionStart,
document.activeElement.selectionEnd);
}
else {
var selRange = window.getSelection ();
selText = selRange.toString ();
}
}
else {
if (document.selection.createRange) { // Internet Explorer
var range = document.selection.createRange ();
selText = range.text;
}
}
return selText;
}

//选择文本框里面的字符
function selectText(textbox, startIndex, stopIndex){
if (textbox.setSelectionRange){
textbox.setSelectionRange(startIndex, stopIndex);
} else if (textbox.createTextRange){
var range = textbox.createTextRange();
range.collapse(true);
range.moveStart(“character”, startIndex);
range.moveEnd(“character”, stopIndex - startIndex);
range.select();
}
textbox.focus();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值