我有一個contenteditable p標籤。當來自p標籤的內容被提取並被插入到另一個標籤中時,原件的所有標記都將丟失。有什麼方法可以保存標記嗎?獲取#文檔片段的innerHTML而不是textContent
請注意,如果插入符號@段落的第i個位置,那麼字符提取從該位置直到最後開始。
function select() {
var el = document.getElementById('p');
el.focus();
var sel = window.getSelection();
var selRange = sel.getRangeAt(0);
var range = selRange.cloneRange();
range.selectNodeContents(el);
range.setStart(selRange.endContainer, selRange.endOffset);
document.getElementById('other').innerHTML = (range.extractContents().textContent);
// return range.extractContents().textContent;
}
p {
\t background-color: #eee;
}
.red {
color: red;
}
<p id="p" contenteditable="true">This is <i>a</i> <span class="red">paragraph</span> <b>with</b> lots of markup.</p>
<p id="other"></p>
<button onclick="select()">SELECT</button>
請再次參考問題。有一個小小的變化。 – dorado
@dorado,找到一個更簡單的方法,只需追加整個片段即可。 – zzzzBov