【示例】
-
HTML
<section id="wrap"> <article id="main"> <h1>游子吟</h1> <h2>孟郊</h2> <p>慈母手中线,游子身上衣。临行密密缝,意恐迟迟归。谁言寸草心,报得三春晖。</p> </article> <header> <input type="button" value="创建范围" onclick="createrange()" /> </header> <footer> <dl> <dt>范围1</dt> <dd>Start Container(开始点的父节点):<span id="txtStartContainer1"></span></dd> <dd>Start Offset(开始点的偏移值):<span id="txtStartOffset1"></span></dd> <dd>End Container(结束点的父节点):<span id="txtEndContainer1"></span></dd> <dd>End Offset(结束点的偏移值):<span id="txtEndOffset1"></span></dd> <dd>Common Ancestor(共同祖先节点):<span id="txtCommonAncestor1"></span></dd> </dl> <dl> <dt>范围2</dt> <dd>Start Container(开始点的父节点):<span id="txtStartContainer2"></span></dd> <dd>Start Offset(开始点的偏移值):<span id="txtStartOffset2"></span></dd> <dd>End Container(结束点的父节点):<span id="txtEndContainer2"></span></dd> <dd>End Offset(结束点的偏移值):<span id="txtEndOffset2"></span></dd> <dd>Common Ancestor(共同祖先节点):<span id="txtCommonAncestor2"></span></dd> </dl> </footer> </section> -
JS
function createrange() { var range1 = document.createRange(); var range2 = document.createRange(); var main= document.getElementById("main"); range1.selectNode(main); range2.selectNodeContents(main); var footer = document.getElementsByTagName("footer")[0]; footer.style.display = "block"; document.getElementById("txtStartContainer1").textContent = range1.startContainer.tagName; document.getElementById("txtStartOffset1").textContent = range1.startOffset; document.getElementById("txtEndContainer1").textContent = range1.endContainer.tagName; document.getElementById("txtEndOffset1").textContent = range1.endOffset; document.getElementById("txtCommonAncestor1").textContent = range1.commonAncestorContainer.tagName; document.getElementById("txtStartContainer2").textContent = range2.startContainer.tagName; document.getElementById("txtStartOffset2").textContent = range2.startOffset; document.getElementById("txtEndContainer2").textContent = range2.endContainer.tagName; document.getElementById("txtEndOffset2").textContent = range2.endOffset; document.getElementById("txtCommonAncestor2").textContent = range2.commonAncestorContainer.tagName; }