Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблема с surroundContents (https://javascript.ru/forum/events/9618-problema-s-surroundcontents.html)

Krappt 27.05.2010 21:38

Проблема с surroundContents
 
Здравствуйте!

Есть такой код:
var rng = window.getSelection().getRangeAt(0);
var b=document.createElement('b');
var fin=rng.surroundContents(b);


Помещает все содержимое текущего Range в новый элемент (в данном случае тег <b>). Все бы ничего, но оборачивается в новый тег только чистый (не содержащий тегов) или содержащий открывающийся и закрывающийся тег (<tag></tag>) блок текста. Можно ли сделать так, чтобы в <b> помещалось любое содержимое range-объекта, включая только один тег (<tag> или </tag)?

Заранее благодарен.

Octane 27.05.2010 23:43

Документ в режиме designMode?

Krappt 28.05.2010 00:11

У span, в котором я выделяю текст стоит contentEditable="true".

Но проблема не в этом. Javascript console в Chrome пишет ошибку, когда я пытаюсь обернуть текст с одним тегом
Uncaught Error: BAD_BOUNDARYPOINTS_ERR: DOM Range Exception 1

Octane 28.05.2010 00:28

Точно не знаю, будет ли работать document.execCommand для contentEditable, если будет, то используйте команду:
document.execCommand("fontFace", false, "fake");

потом находите эти <font face="fake"> и заменяйте на нужные вам теги.
p.s. уточните порядок параметров в execCommand, сам сейчас не могу попробовать.

Krappt 28.05.2010 01:10

Спасибо большое, про execCommand практически не знал и начал изобретать велосипед, а тут оказывается, что wysiwyg решается одним методом. Порядок параметров верный.


Часовой пояс GMT +3, время: 17:31.