那麼你有一個問題。
假設這樣的文字:
Hello my
name is
Josh and
this is an
example for you
其下是這樣的:
<span>
Hello my
<span>
name is<br/>
Josh and
</span>
<span>
this is an<br/>
example for you
</span>
</span>
然後假設我選擇:
Josh and
this is an
我選擇的HTML是:
Josh and
</span>
<span>
this is an
所以,如果你圍繞一個範圍,你會最終搞砸了一些HTML。
所以,我提出以下建議:
:
你這樣結束了獲取選中的文本使用javascript
地帶的HTML標籤function getSelectedTextNoHtml() {
return getSelectedText().replace(/(<([^>]+)>)/ig, "");
}
function getSelectedText() {
if (window.getSelection)
return window.getSelection();
else if (document.getSelection)
return document.getSelection();
else if (document.selection)
return document.selection.createRange().text;
return "";
}
然後,您可以採取整個文檔的HTML,去除HTML標記和fi nd在文檔的文本版本中選擇文本的索引。
我甚至可以想到(醜陋但可行)的獲取HTML選擇索引的方法。但我警告你,如果你想要他們,他們是醜陋的。
還有甚至非常醜陋的方式來使用您想要的唯一ID在選定的文本週圍整齊地找到一個範圍。當然,總有辦法做東西。一切都只是一個算法。但它會涉及到一個好日子的工作磨礪它!
我已經發布了足夠的內容,如果你想讓我詳細說明,就問一下!
UPDATE:
OK,你問它:)
- 對選定的文本和日誌某處
- 的東西絕對是獨一無二的
- 查找暫時代替選中的文本那個完全獨特的文字的索引
- 更改文字返回
如果要謹慎地做沒有自己的文字閃爍和改變,你可以嘗試服用HTML的優點零寬度空間:
​
棒,在它前面的100倍,並找到100個零寬度空間的索引!
當然,它會失敗,如果他們的文件有100個零寬度空間和他們所選擇的其他地方的文本,但在這一點上,我說:「讓它失敗」 :)
Howzat?
聽起來雄心勃勃。在父文檔中嵌套適當節點的開始/結束點將是一場噩夢,尤其是在Word編寫的冗餘HTML編碼的情況下。 EEK! – 2009-05-27 22:21:43
您是否簡單地稱「Word文檔保存爲HTML」? – 2009-05-27 23:06:19