是否有跨瀏覽器的方式來獲取所選文本的HTML?選定文本的HTML
14
A
回答
31
此功能將做它在所有主要瀏覽器:[在瀏覽器,跨平臺的入門選擇的文本]
function getSelectionHtml() {
var html = "";
if (typeof window.getSelection != "undefined") {
var sel = window.getSelection();
if (sel.rangeCount) {
var container = document.createElement("div");
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
container.appendChild(sel.getRangeAt(i).cloneContents());
}
html = container.innerHTML;
}
} else if (typeof document.selection != "undefined") {
if (document.selection.type == "Text") {
html = document.selection.createRange().htmlText;
}
}
return html;
}
// bind events for selection
document.addEventListener('mouseup', function(){
var selectedHTML = getSelectionHtml();
if(selectedHTML)
console.log(selectedHTML)
});
document.addEventListener('keyup', function(e){
var selectedHTML, key = e.keyCode || e.which;
if(key == 16){ // if "shift" key was released
selectedHTML = getSelectionHtml();
if(selectedHTML)
console.log(selectedHTML)
}
});
<ul contenteditable>
<li><p>Select <b>this</b> <em>text</em> right <i>here</i></p></li>
<li>Or <b>this text</b></li>
</ul>
+2
的這種解決方案的問題是,當你選擇
第一段文字,
帽鎖定部分選擇第二段
你沒有得到預期的「文本BE SELECTED「而是」
文本
選擇
- 對於那些不以關閉是那些選擇某種原因,瀏覽器的廣告標籤有什麼辦法如何只得到真正是在選擇 – honzzz 2015-08-08 06:19:59+2
?一個HTML文檔基本上是一個節點樹,一旦最初的HTML文本被解析了,它就基本上消失了,你必須處理節點。將選擇轉換成可能(但相對複雜)您建議的字符串類型,但不能保證它與原始HTML文本相匹配,這只是表示文檔的許多同等有效方式之一。 – 2015-08-10 08:50:27
+0
適合我thanx!它也給了我一些想法.. – 2015-12-03 12:33:15
相關問題
- 1. 檢索選定文本的html代碼
- 2. 如何獲取選定文本上的文本和html返回
- 3. 使用JavaScript基於HTML中的選定選項生成文本
- 4. HTML選擇的選項爲文本框
- 5. 選擇HTML文檔的所有文本
- 6. 無法選擇html文本
- 7. HTML選項,文本格式
- 8. HTML選擇或文本區
- 9. HTML豐富文本編輯:自定義HTML選擇周圍
- 10. 如果選定的文本是HTML,如何使用JavaScript獲取選定的DOM?
- 11. 文本框中的選定文本
- 12. HTML選擇選項文本格式
- 13. 如何用contenteditable元素中的html替換選定的文本?
- 14. 在HTML格式的JEditorPane中選擇指定的文本
- 15. iframe中的選定文本
- 16. document.elementFromPoint爲選定的文本
- 17. 設置選定的文本
- 18. 期望選定的文本
- 19. 檢測選定的文本
- 20. 捕捉選定的文本
- 21. 分享選定的文本
- 22. 選擇顯示文本文件php html
- 23. ipad中的文本選擇html
- 24. 禁用HTML元素的文本選擇
- 25. 單選按鈕中的HTML文本框?
- 26. html表格中的非可選文本?
- 27. 選擇HTML頁面的文本
- 28. 獲取/使用HTML文本區內的選定位置
- 29. 如何替換html textarea中當前選定的文本?
- 30. Atom組合鍵將html標籤添加到選定的文本
可能重複的(http://stackoverflow.com/questions/10478/getting-selected-text-in-a-browser-cross-platform) – Sarfraz 2010-11-14 09:38:23
這個問題的答案都不是很好,這是一個不同的問題:它要求選擇的文本,而不是HTML所選文字。 – 2010-11-14 11:32:49
已經在SO上回答http://stackoverflow.com/questions/10478/getting-selected-text-in-a-browser-cross-platform – wiifm 2010-11-14 09:36:50