從我的previous question選擇特定的html文本,我已經通過this link瞭解html字符串的範圍。html - 選擇範圍 - 獲取範圍+起始節點+結束節點+距離
用於選擇html頁面上的特定文本。我們需要遵循這些步驟。
假設的HTML:
<h4 id="entry1196"><a
href="http://radar.oreilly.com/archives/2007/03/call_for_a_blog_1.html"
class="external">Call for a Blogger's Code of Conduct</a></h4>
<p>Tim O'Reilly calls for a Blogger Code of Conduct. His proposals are:</p>
<ol>
<li>Take responsibility not just for your own words, but for the
comments you allow on your blog.</li>
<li>Label your tolerance level for abusive comments.</li>
<li>Consider eliminating anonymous comments.</li>
</ol>
Java腳本的範圍
var range = document.createRange(); // create range
var startPar = [the p node]; // starting parameter
var endLi = [the second li node]; // ending parameter
range.setStart(startPar,13); // distance from starting parameter.
range.setEnd(endLi,17); // distance from ending parameter
range.select(); // this statement will make selection
進行選擇我想這樣做的反轉方式。我的意思是,假設選擇是由用戶在瀏覽器(safari)上完成的。我的問題是我們如何獲得起始節點(因爲這裏有'p節點')和結束節點(因爲我們在這裏有'第二個li節點')以及範圍(因爲我們在這裏有13,17) ?
編輯:我的努力(從this question)
var sel = window.getSelection();
if (sel.rangeCount < 1) {
return;
}
var range = sel.getRangeAt(0);
var startNode = range.startContainer, endNode = range.endContainer;
// Split the start and end container text nodes, if necessary
if (endNode.nodeType == 3) {
endNode.splitText(range.endOffset);
range.setEnd(endNode, endNode.length);
}
if (startNode.nodeType == 3) {
startNode = startNode.splitText(range.startOffset);
range.setStart(startNode, 0);
}
不過,但我感到困惑越來越像,如果選擇的是第一款或第二或第三,或選擇在第一個標題或第二個標題或什麼...
你能澄清一下你想達到的目標嗎? – 2010-06-02 08:24:40
@Tim Down - 讓我解釋一下。用戶在按鈕上進行選擇和輕擊。我需要存儲用戶選擇的範圍。 – 2010-06-02 08:37:21