有了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. 用純jQuery替換contenteditable中的文本
- 3. 用HTML元素替換文本
- 4. 如何用jQuery替換文本元素中的文本
- 5. 用html元素替換html的佔位符文本使用javascript
- 6. 立即替換contenteditable文本
- 7. javascript:從contenteditable替換選定的文本按鈕點擊
- 8. HTML :: Element - >用新的HTML替換文本節點::元素
- 9. 如何替換html textarea中當前選定的文本?
- 10. 查找並與特定的文本替換HTML元素
- 11. 如何用新文本替換僅SWT中的選定文本
- 12. 替換div元素中的文本
- 13. 替換html元素的jquery
- 14. 如何從jquery中替換svg中的文本元素的值
- 15. 如何替換HTML文檔或特定元素中的特定字符串?
- 16. 禁用HTML元素的文本選擇
- 17. Contenteditable div設置插入符號替換文本後用HTML
- 18. 如何用JavaScript元素替換HTML元素或克隆它?
- 19. 聽一個CONTENTEDITABLE HTML元素
- 20. 如何用python替換字符串中的html元素?
- 21. 如何用新值替換文本流中的跨度元素文本
- 22. 如何替換XML元素中的文本?
- 23. 替換span元素的文本
- 24. jQuery替換元素的文本
- 25. 如何迭代HTML文件中的特定元素並替換它們?
- 26. JQuery用文本替換表單元素
- 27. jQuery用文本框替換元素
- 28. 替換Firefox中的選定文本
- 29. 如何用jQuery設置select html元素的選定元素?
- 30. 如何通過腳本替換InDesign中的選定文本?
這個問題的第二部分(「換成我自己的HTML所選文本」)中,他的問題鏈接爲未回答這是一個重複的參考。 – 2014-07-15 23:49:42
我刪除了已回答的部分,以符合「每個問題的一個問題」規則。 – FakeRainBrigand 2014-07-16 00:16:20