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 相关文章推荐
javascript 操作文件 实现方法小结
Jul 02 Javascript
页面中js执行顺序
Nov 09 Javascript
ExtJS Store的数据访问与更新问题
Apr 28 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
JavaScript中检测变量是否存在遇到的一些问题
Nov 11 Javascript
使用jquery插件qrcode生成二维码
Oct 22 Javascript
AngularJS bootstrap启动详解及实例代码
Sep 14 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
Apr 11 Javascript
详解Js中的模块化是如何实现的
Oct 18 Javascript
js中的深浅拷贝问题简析
May 10 Javascript
JS实现简单打字测试
Jun 24 Javascript
JS画布动态实现黑客帝国背景效果
Nov 08 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
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
JS实现打字游戏
2019/12/17 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
开始着手第一个Django项目
2015/07/15 Python
Python实现读取并保存文件的类
2017/05/11 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
python进度条显示之tqmd模块
2020/08/22 Python
详解python中的lambda与sorted函数
2020/09/04 Python
详解KMP算法以及python如何实现
2020/09/18 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
印度网上药店:1mg
2017/10/13 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
一道Delphi上机题
2012/06/04 面试题
优秀求职自荐信怎样写
2013/12/18 职场文书
七年级数学教学反思
2014/01/22 职场文书
国庆促销活动总结
2014/08/29 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
就业导师推荐信范文
2015/03/27 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
销售口号霸气押韵
2015/12/24 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS