javascript范围DOM和IE

2 篇文章 0 订阅
2 篇文章 0 订阅
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

</head>
<body οnlοad="init();">
    <form id="form1">
    <div id="div1">
        <ul>
            <li>
                <a><b><em>Hello</em> World</b></a>
            </li>
            <li></li>
            <li></li>
        </ul>
    </div>
    </form>
        <script type="text/javascript">
            var init = function () {
                range_basic();
                userRanges();
                rangesComp();
                rangesLight();
            }
            function range_basic() {
                var supportDOMRanges = document.implementation.hasFeature("Range", "2.0");
                if (supportDOMRanges) {
                    var oRange1 = document.createRange();
                    var oRange2 = document.createRange();
                    var oDiv = document.getElementById("div1");
                    oRange1.selectNode(oDiv);
                    oRange2.selectNodeContents(oDiv);
                    var end;
                }
            }
            function userRanges() {
                var oRange1 = document.createRange();
                var oRange2 = document.createRange();
                var oDiv = document.getElementById("div1");

                var iP1Index = -1;
                for (var i = 0; i < oDiv.parentNode.childNodes.length; i++) {
                    if (oDiv.parentNode.childNodes[i] == oDiv) {
                        iP1Index = i;
                        break;
                    }
                }
                oRange1.setStart(oDiv.parentNode, iP1Index);
                oRange1.setEnd(oDiv.parentNode, iP1Index + 1);
                oRange2.setStart(oDiv, 0);
                oRange2.setEnd(oDiv, oDiv.childNodes.length);
            }
            function rangesComp() {
                var oDiv = document.getElementById("div1");
                var oemText = oDiv.getElementsByTagName("em")[0].childNodes[0];
                var otext = oDiv.getElementsByTagName("ul")[0].getElementsByTagName("li")[0].getElementsByTagName("b")[0].childNodes[1];
                var oRange1 = document.createRange();
                oRange1.setStart(oemText, 2);
                oRange1.setEnd(otext, 3);
                var oFargment = oRange1.extractContents();
                document.body.appendChild(oFargment);
            }
            function rangesLight() {
                var oDiv = document.getElementById("div1");
                var oemText = oDiv.getElementsByTagName("em")[0].childNodes[0];
                var oRange1 = document.createRange();
                oRange1.setStart(oemText, 1);
                oRange1.setEnd(oemText, 2);
                var oSpan = document.createElement("span");
                oSpan.style.color = "Red";
                oRange1.surroundContents(oSpan);
                oRange1.detach();
            }
    </script>
</body>
</html>

IE下的范围:

            function range_basic() {
                var oRange1 = document.body.createTextRange();
                var bFound = oRange1.findText("Hello");
                var sFound = bFound.text;
            }
            function userRanges() {
                var oRange1 = document.body.createTextRange();
                var bFound = oRange1.findText("Hello");
                var bFound2 = oRange1.findText("Hello", 1);
                var sFound = bFound.text;
                var sFound2 = bFound2.text;
            }
            function rangesComp() {
                var oRange1 = document.body.createTextRange();
                var oDiv = document.getElementById("div1");
                oRange1.moveToElementText(oDiv);
                var sHtmlText = oRange1.htmlText;
                var oCommonAncestor = oRange1.parentElement();
            }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值