有了contenteditable元素我怎樣才能用我自己的html替換選定的內容?如何用contenteditable元素中的html替換選定的文本?
回答
看到這裏的工作的jsfiddle:從Tim Down採取http://jsfiddle.net/dKaJ3/2/
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;
}
}
alert(html);
}
這看起來很熟悉... http://stackoverflow.com/questions/4652734/return-html-from-a-user-selection/4652824#4652824 – 2011-06-06 13:37:49
重新使用來自另一個答案的代碼很好,但它會很有禮貌地提及你從哪裏得到的。 – 2011-06-06 14:35:10
@Tim Down:對不起。我知道屬性代碼。我總是首先在文本編輯器中設置我的答案,並且最終鏈接到您的問題,我想我在粘貼之前並沒有複製所有內容(您不必接受我的說法)。這確實是一個誠實的錯誤,我會更新我的答案。 – 2011-06-06 15:12:05
獲取所選的HTML,你可以使用我寫了this question功能。要用您自己的HTML替換選擇,您可以使用this function。下面是插入一個HTML字符串而不是DOM節點的替代品功能的版本:
function replaceSelectionWithHtml(html) {
var range;
if (window.getSelection && window.getSelection().getRangeAt) {
range = window.getSelection().getRangeAt(0);
range.deleteContents();
var div = document.createElement("div");
div.innerHTML = html;
var frag = document.createDocumentFragment(), child;
while ((child = div.firstChild)) {
frag.appendChild(child);
}
range.insertNode(frag);
} else if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
range.pasteHTML(html);
}
}
replaceSelectionWithHtml("<b>REPLACEMENT HTML</b>");
- 1. 替換contenteditable div中的選定文本
- 2. 用html元素替換html的佔位符文本使用javascript
- 3. 立即替換contenteditable文本
- 4. javascript:從contenteditable替換選定的文本按鈕點擊
- 5. HTML :: Element - >用新的HTML替換文本節點::元素
- 6. 如何替換html textarea中當前選定的文本?
- 7. 查找並與特定的文本替換HTML元素
- 8. 如何用新文本替換僅SWT中的選定文本
- 9. 替換div元素中的文本
- 10. 替換html元素的jquery
- 11. 如何替換HTML文檔或特定元素中的特定字符串?
- 12. Contenteditable div設置插入符號替換文本後用HTML
- 13. jQuery替換元素的文本
- 14. 替換span元素的文本
- 15. 如何迭代HTML文件中的特定元素並替換它們?
- 16. 替換Firefox中的選定文本
- 17. 如何用jQuery設置select html元素的選定元素?
- 18. 如何通過腳本替換InDesign中的選定文本?
- 19. 替換html元素值
- 20. 如何將現有DOM元素文本轉換爲HTML元素?
- 21. 如何使用屬性contentEditable刪除div內的HTML元素?
- 22. 替換選定的像素
- 23. 用鏈接替換html中的文本
- 24. 用Javascript中的HTML文本替換textNode?
- 25. 如何從select元素中獲取選定選項的文本?
- 26. 如何替換HTML模板中的元素
- 27. 使用替換字符串內容的HTML元素本地JS
- 28. 如何在CSS中選擇contentEditable = true的元素?
- 29. 如何定位html元素內部的文本中心
- 30. 動態替換HTML元素的UIWebView
這個問題的第二部分(「換成我自己的HTML所選文本」)中,他的問題鏈接爲未回答這是一個重複的參考。 – 2014-07-15 23:49:42
我刪除了已回答的部分,以符合「每個問題的一個問題」規則。 – FakeRainBrigand 2014-07-16 00:16:20