如题:比如有一个DIV当中选中文字即显示选啊文字所在的位置。是多个段落里选中。并不是单一段落里。
如<p>123456</p><p>abcbf</p>
选取b后,显示:选中的文字:b,所在位置(8,8)。这里主要是请教非IE浏览器的选取问题,谢谢大家。
如<p>123456</p><p>abcbf</p>
选取b后,显示:选中的文字:b,所在位置(8,8)。这里主要是请教非IE浏览器的选取问题,谢谢大家。
解决方案 »
- easyui window 以及 dialog 打开一个子页如何关闭 求解
- 谁能把百度音乐的下拉框效果代码抠出来
- JavaScript怎么给onfocus这样的内部事件传递参数
- 如何计算日期天数差?
- JS把页面中的全部图片汇聚成一条蛇在页面中爬来爬去的问题
- 大家帮我看看什么问题.
- <textarea onpropertychange="value=value">dddddddd </textarea> 为什么报错?
- 如何取出BBS论坛内容图片完整路径???
- dropdown的高度怎么设置,好像在style里设置了没起作用?
- TABLE中插入TR的問題
- 请问qq空间的音乐播放器是怎么做的?没有使用flash。
- extjs4 refs中配置ref,无法获取get方法
<html lang="en">
<body>
<p>123456</p><p>abcbf</p>
</body>
<script>
var sel=window.getSelection();
var rng=document.createRange();
var ps=document.getElementsByTagName('p')
sel.removeAllRanges();
rng.setStart(ps[0].childNodes[0],2);
rng.setEnd(ps[1].childNodes[0],2);
sel.addRange(rng);
</script>
</html>
var obj = document.getElementById(divId);
var tmpStr = obj.InnerHtml;
VAR b, startPos, endPos;
if (document.selection) {
// FOR IE
var sel = document.selection.createRange();
var pre = sel.boundingWidth/sel.text.length;
startPos = sel.boundingLeft/pre;
endPos = startPos+sel.text.length;
b = sel.text;
} else if (typeof obj.selectionStart == 'number'
&& typeof obj.selectionEnd == 'number') {
// FOR others
startPos = obj.selectionStart;
endPos = obj.selectionEnd;
b = tmpStr.substring(startPos, tmpStr.length-endPos);
} else {
startPos = endPos = 0;
b = tmpStr;
}
// Result 选中的文字:b,所在位置(startPos,endPos); startPos 与 endPos是指选中字符位置
}
在极速360浏览器当中使用,获取不到对象,还有IE当中的已经解决,请帮助集中解决非IE的浏览器即可。谢谢您的回复。
// FOR others
startPos = obj.selectionStart;
endPos = obj.selectionEnd;
b = tmpStr.substring(startPos, tmpStr.length-endPos);
}
这段即是针对非IE浏览器的,我木有装360,但是FF,Chrome, Safari, Opera都已支持
var obj = document.getElementById(divId);//这句就不是所有主流浏览器所支持的吧。
var tmpStr = obj.InnerHtml;另外在IE当中是显示的位置是小数点了的。
我这里是的html形式的.不是文本框的。
在Chrome,Opera都不行。
我这边测试引用时是:insertText('divID')。
还请指教。
alert("您选中的文字:"+ my_selection.toString());
alert("选中文字的开始位置:"+range.startOffset);
alert("选中文字的结束位置:"+range.endOffset);类似如上代码,p被视为新的range,重新计算了,即是只计算到所选文字P的对应文字的所在位置。。