Есть div с атрибутом contenteditable="true" и id="message"Другими словами это блок содержимое которого можно редактировать из окна браузера. Служит, как альтернатива input type="text"Необходимо создать кнопки бб-кодов для вводимого в этот див текста. Создаем например такую кнопку<input type="submit" onclick="bbcode('b'); return false" value="b">теперь Функцию JSпикрелейт 2 ибо какое-то там слово из спамлистаТаким образом выделяя часть текста в диве и нажимая на кнопку передается 'b' в функцию bbcode, внутри которой создается новые html объект - <b></b>, в нутрь него вставляется выделенная часть текста. Хорошо, но нужно не так.Необходимо, чтобы я передавал открывающийся и закрывающийся тег, вот так: onclick="bbcode('<b>','</b>'), а внутри функции bbcode выделенный текст оборачивался этими тегами. Как такое сделать?
бамп
Сделай где-нибудь невидимый элемент и хуярь ему innerHTML, а потом бери ноду, клонируй и аппенди.
>>136403284не могу, не шарю
Тогда никак.
тогда бамп
Тебе не нужно ничего оборачивать, за тебя все уже сделали.https://developer.mozilla.org/ru/docs/Web/API/Document/execCommand
>>136403894нужно
>>136404017Блять, execCommand('bold', ...) тебе те самые <b></b> и вставит. И обработает за тебя наличие/отсутствие выделения, и всю хуйню. А вот если тебе НЕ нужно таким способом, тебе придется отключить встроенные хоткеи, которыми эта execCommand уже вызывается по дефолту для элементов с contentEditable, а это гораздо сложенее.
>>136404334А что сложного? Переопределил execCommand и норм.
>>136404423Вперед. Переопредели и нажми Ctrl+B в хроме.
>>136404334если мне нужно обернуть в теги с атрибутами и свойствами, как с этим справится execCommand? Например <p class="pidoras">
>>136402217 (OP)Ебать ты изобретатель велосипедов.
Ну создоешь кароч такой createElement('div'), делаеш ему innerHTML = то, что передано в bbcode ('<b class="pidoras"></b>', например), доставаешь из него tagName - 'b' и attributes - {class: "pidoras"}, а дальше, как в оппосте плюс newNode.setAttribute. А все почему? Потому что ты хочешь странного. Не страдай хуйней, передавай атрибуты вторым параметром bbcode().
>>136405252Проблема не в этом. Проблема кода в ОП посте в том, что я не могу выделить например жирным и курсивом
>>136402217 (OP)jquery не вариант юзать?
>>136402217 (OP)Наркоман ебучий.>Есть div с атрибутом contenteditable="true" и id="message"Нахуя, когда есть textarea.>Необходимо создать кнопки бб-кодовНахуя, когда есть готовые и настраиваемые.
>>136405537>Проблема кода в ОП посте в том, что я не могу выделить например жирным и курсивомА почему это написано только в 20-м посте? Оп хуй, который не умеет ставить задачи.
>>136407286Потомучто эту проблему и проблему с передачей тега с атрибутом должна решить идея о реализации которой я вопросил в ОП посте
>>136407739Ты хоть бы потестировал свое говно. Вторая строчка перестает работать потому что parentElement становится не div, а b./thread
>>136407994Ебать и впрямь! А как решить сею задачу сохранив проверку: if (window.getSelection().focusNode.parentElement === document.getElementById('message'))
>>136408267Никак
>>136408616динамщик хуев(
>>136408650Пиши нормально без говнокода
>>136408712лан, а как черз createElement создать элемент с атрибутом?
>>136408984element.setAttribute
>>136409177дай бог тебе здоровьечкаИ еще, вот проверка та:window.getSelection().focusNode.parentElement === document.getElementById('message')Можно же проверить ели фокус на элементе например <b> верно? Как?