Как обернуть и развернуть выделенный текст в contenteditable div?
JsFiddle Demo полностью работает для переноса текста, но я не знаю, как это развернуть выделенный текст.
range.text = '[' + tag + ']' + selectedText + '[/' + tag + ']';
как это развернуть тег и получить оригинальный выделенный текст.
3 ответа
Если вы не хотите использовать 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, его легко использовать в ваших целях. Но вам нужно позаботиться о совместимости браузера.
JQuery избавит вас от многих проблем здесь:
$('Findyourtaghere') содержание () разворачивать ()..;
Я все еще не нашел то, что искал, но я нашел решение для того, что вы ищете, эта единственная строка возьмет родительский элемент выделенного текста и удалит его, сохраняя текст там, где он есть, если вы не выберете что-то другое, кроме текста, например, элемент, но тогда это была бы другая проблема.
$(window.getSelection().anchorNode.parentElement).unwrap();