zoukankan      html  css  js  c++  java
  • 中文前端UI框架Kit(九)IE下实现W3C标准的range对象所有api,支持通过xpath跨浏览器实现特定选区高亮,书签标记功能

    号外:kitjs官方讨论QQ群建立了,QQ群号88093625,欢迎大家加入,讨论前端相关话题

    kit是目前已知框架中第一个支持完美IE下跨段落,跨任意元素,以及多个textNode的偏移问题的高亮工具,以及对range对象的修复,完美修复IE下的range对象以支持了W3C标准range模型的所有的属性以及接口

    demo地址:http://xueduany.github.com/KitJs/KitJs/index.html#highlight,类似iCloud的高亮书签,类似有道阅读类似的书签功能,与他不同的是,kit支持跨段落,且标准化以及兼容性更好

    (一)Fix IE range对象,模拟W3C的标准模型,支持开始节点,结束节点,开始位移,结束位移等

    我们都知道IE9之前不支持W3C的标准Selection和Range对象,无法或者选区内容的开始节点和结束节点,以及开始位移和结束位移

    现在kit帮你fix了IE下的range对象兼容

    中文api doc地址: http://xueduany.github.com/jsdoc/out/$Kit.Selection.html

    (二)可以根据选中内容生成xpath字符串,保存高亮标签

    先用鼠标选中一段文本

    image

    ,然后在console里面,可以看到选中内容,可以序列化为一条xpath的字符串

    //BODY/DIV[1]/DIV[3]/DIV[2]/P[4]/text()[5]|31|//BODY/DIV[1]/DIV[5]/DIV[2]/TABLE[1]/TBODY[1]/TR[1]/TD[2]/LI[1]/I[1]/I[1]/text()[1]|17

    (三)根据xpath实现跨浏览器高亮

    根据之前的xpath字符串,在IE的console里面输入

    $kit.selection.highlight('//BODY/DIV[1]/DIV[3]/DIV[2]/P[4]/text()[5]|31|//BODY/DIV[1]/DIV[5]/DIV[2]/TABLE[1]/TBODY[1]/TR[1]/TD[2]/LI[1]/I[1]/I[1]/text()[1]|17')

    image

    我们可以看到同样的选区在ie中被高亮了

    (四)扩展

    这样,基于kit,你可以很轻松的实现任意设备的高亮书签保存,类似iCloud的书签功能,有任何疑问,欢迎讨论

  • 相关阅读:
    7.2集训模拟赛(莫名其妙的比赛......)
    CF1042B Vitamins
    P1629 邮递员送信
    P1726 上白泽慧音
    P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G
    最短路
    7.1集训模拟赛5(......)
    求最大公约数和最小共倍数的方法(除穷举)
    6.29集训模拟赛3(暴力骗分的一天,嘿嘿)
    爬虫认证ES用户,并访问api
  • 原文地址:https://www.cnblogs.com/xueduanyang/p/2522829.html
Copyright © 2011-2022 走看看