JSFIDDLE DEMO如何在contenteditable div中打包和展開選定的文本?
JsFiddle Demo完全適用於包裝文本,但我不知道它是如何解開選定的文本。
range.text = '[' + tag + ']' + selectedText + '[/' + tag + ']';
它是如何解開標籤並獲取原始選定的文本。
JSFIDDLE DEMO如何在contenteditable div中打包和展開選定的文本?
JsFiddle Demo完全適用於包裝文本,但我不知道它是如何解開選定的文本。
range.text = '[' + tag + ']' + selectedText + '[/' + tag + ']';
它是如何解開標籤並獲取原始選定的文本。
這隻會在你的文本實際包裝在一個標籤中時才起作用,你的jsfiddle實際上只是添加了新的文本。 – RustyToms
但它可能不在這裏工作!我想在第二次替換文本時刪除特殊字符.http://james.padolsey.com/javascript/replacing-text-in-the-dom-its-not-that-simple/ –
如果你不想使用jQuery,你可以使用這樣的事情:
var element = document.createElement('span');
element.originalText = selectedText;
element.textContent = '[' + tag + ']' + selectedText + '[/' + tag + ']';
element.onclick = function() {
this.parentNode.replaceChild(document.createTextNode(this.originalText), this);
};
range.insertNode(element);
我這裏使用的span
元素,而不是textNode,很容易使用你的目的。但是你需要關心瀏覽器的兼容性。
這很混亂,因爲在你的jsfiddle中,你沒有添加標籤,你正在添加文本。 – RustyToms