IE8能此系统不支持ie8DOM2了吗?

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

上面是我们知道开始结束位置的情况下那我们如何知道用户自己选中的热区的开始,结束节点和偏移量呢

很可惜查了半天,MSDN只有以下几个属性可以利用

textRange.parentElement返回选Φ热区的父亲节点,可以帮助我们确定一个大概的范围

可以没有直接的index…,和开始节点。之类

好吧,如果我们要通过位置来算的话我们可以通过每行的line-height,计算高度如果是一个节点的话,要计算节点的height,padding,marging

然后我们结合text,和htmlText去比对附近的元素的文本内容可以得到索引的坐标

这样 基本上我们可以确定开始/结束节点,以及偏移量了

不过这样做的成本也是比较高的,不知道大家还有没有好的办法或者hacker嘚方法^_^

上述代码运行后点击"点击我(孓元素)"文本,会发现不仅会弹出parent clicked提示还会弹出child clicked提示,这就是js操作HTML // 阻止默认浏览器动作(W3C) // IE中阻止函数器默认动作的方式 alert("我阻止了点击A标签嘚默认事件");

我的ie是ie11最近装了一个垃圾插件,也不知道修改什么东西了导致我现在访问项目,网站都是以低版本打开的用开发人员工具查看,基本都是ie6,7,8等也不知道是怎么回事。

我要回帖

更多关于 此系统不支持ie8 的文章

 

随机推荐