IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)


Posted in Javascript onAugust 28, 2011

刚和同事讨论了一个很有趣的问题,有个idea,需要记录用户在页面选中的内容,在ff和ie9下有w3c的dom2级事件createRange,这里不再累赘。主要问题是在IE6,7,8只能通过createTextRange选中热区。假如我们知道用户选择开始元素和偏移量,以及结束元素以及偏移量,那么我们可以用下面的例子把用户选择的内容用js给标记起来

<head> 
<script> 
function mark() { 
var b= document.getElementById ("b"); 
var b1= document.getElementById ("b1"); 
var b2= document.getElementById ("b2"); 
var a1 = document.body.createTextRange(); 
a1.moveToElementText(b); 
a1.moveStart('character',17); 
var a2 = document.body.createTextRange(); 
a2.moveToElementText(b1); 
a2.moveEnd('character',-2); 
a1.setEndPoint ("EndToEnd",a2); 
a1.select(); 
}</script> 
</head> 
<body> 
<div id="b">The <b>contents</b> of the <i>source</i> element.</div> 
<div id="b1">The <b>contents</b> of the <i>source</i> element.</div> 
<div id="b2">The <b>contents</b> of the <i>source</i> element.</div> 
<button onclick="mark();">Mark</button> 
</body>

ok,从上面的代码,我们可以知道,在IE6,7,8下,需要关联多个元素的选择时候,我们需要创建两个textRange,一个是开始节点,以及偏移量,还有一个结束节点,以及偏移量,两个textRange用a1.setEndPoint关联

参考文档:http://help.dottoro.com/ljgbbkjf.php

Javascript 相关文章推荐
jquery $.ajax相关用法分享
Mar 16 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
jquery实现表单输入时提示文字滑动向上效果
Aug 10 Javascript
基于javascript实现tab切换特效
Mar 29 Javascript
深入浅析JavaScript中数据共享和数据传递
Apr 25 Javascript
jQuery实现手机自定义弹出输入框
Jun 13 Javascript
封装获取dom元素的简单实例
Jul 08 Javascript
vue实现列表的添加点击
Dec 29 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
Mar 05 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
May 11 Javascript
JS字符串补全方法padStart()和padEnd()
May 27 Javascript
range 标准化之获取
Aug 28 #Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 #Javascript
js中设置元素class的三种方法小结
Aug 28 #Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
Aug 28 #Javascript
IE6、IE7中获取Button元素的值的bug说明
Aug 28 #Javascript
JavaScript 选中文字并响应获取的实现代码
Aug 28 #Javascript
js预载入和JavaScript Image()对象使用介绍
Aug 28 #Javascript
You might like
php 应用程序安全防范技术研究
2009/09/25 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
python学习教程之使用py2exe打包
2017/09/24 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
python距离测量的方法
2018/03/06 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
python解析yaml文件过程详解
2019/08/30 Python
python tornado修改log输出方式
2019/11/18 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
CAD制图设计师自荐信
2014/01/29 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
财务总经理岗位职责
2014/02/16 职场文书
法制宣传标语
2014/06/23 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
小学远程教育工作总结
2015/08/13 职场文书
禁毒主题班会教案
2015/08/14 职场文书
民事调解协议书
2016/03/21 职场文书
Python图片检索之以图搜图
2021/05/31 Python