Выделение текста в текстовом поле. Как снять выделение с пробела вконце?
Подскажите, пжалста, кто знает ...
Есть текстовое поле в которое вводится текст. Если мышкой выделять по словам в тексте, то выделяется также пробел в конце последнего выделенного слова, при этом, если слово ограничено знаками припинания, то они не выделяются (за исключением одинарных кавычек в IE). Какое событие и как надо модифицировать, чтобы выделение пробела и одинарных кавычек не происходило? |
Поставить contentEditable = true, затем при каждом нажатии клавиши заменять кавычки на это: <span unselectable="on">'</span>.
|
Спасибо, конечно, но мимо кассы.
Есть текстовое поле, в которое я ввожу текст. Надо чтобы при выделении не захватывался последний пробел у выделенных слов. ХТМЛ тут не при чем. Алогритм, как я представляю, следующий: событие выделения -- проверить, является ли последний символ в выделении пробелом, если да, сдвинуть маркер конца выделения на 1 позицию назад. Конечно, возможно это бредовая задача, но в работе очень напрягает все время вручную фиксить окончание выделения. |
Цитата:
|
Я яваскрипт пару дней назад начал изучать. Вопрос очевиден, куда надо трим засунуть?
Финальная задача такая: При выделении слов в поле редактора я могу обернуть их (через функции редактора) в тег. Но при стандартном выделении, ессно, захватывается еще и пробел, который там нафиг не нужен. Это очень бесить. Приходится при редактировании постоянно на клавиру переключатьсо. Пример: - "Южно-эфиопский грач увёл мышь за хобот на съезд ящериц." -- исходный текст в редакторе - "Южно-эфиопский |грач увёл мышь за |хобот на съезд ящериц." -- вид текста при выделении - "Южно-эфиопский <em>грач увёл мышь за </em>хобот на съезд ящериц." -- результат "обертки" в тег Как должно бы быть: - "Южно-эфиопский |грач увёл мышь за| хобот на съезд ящериц." -- вид текста при выделении - "Южно-эфиопский <em>грач увёл мышь за</em> хобот на съезд ящериц." -- результат "обертки" в тег |
Цитата:
|
Просто решил привентить Markitup к системе и тут наткнулся на эту фичу современных редакторов. Обратил внимание, что это правило распространяется на большинство редакторов, например ВОРД, НОТЕПАД ...
Интересно, на других платформах также? (щас нет возможности проверить). На самом деле, я понял, что в данном случае -- это как с мельницами сражаться. Впринципе, всеравно все работает. Так для общего развития интересно, как можно решить данную задачу ... |
Roman Koff, для интереса заглянул в свои OpenOffice, AkelPad и Geany -- выделяют по слову, без пробела. Notepad -- как идиот. MS Word -- нет возможности проверить. Навскидку, для чего это зделано мелкомягкими -- чтобы, если Вы выделили слово, сделали его, к примеру, bold, то потом Вы и дальше будете писать bold'ом. Говноидея.
Опера 10.51 выделяет нормально, Firefox 3.6.3 -- опять же как идиот. Платформа: Win 7 Цитата:
|
:)
|
Ну так и сделал, пример, если кому нужно будет:
function setTag(s, beg, end) { var se = (s[s.length - 1] == ' ') ? ' ' : ''; return beg + Trim(s) + end + se; } Возник еще интересный момент, может кто сталкивался: Если в редактор (испытывал на CKEditor и Markitup) вставить код спецсимвола, например: – « и т.п., то, после нескольких отправок (сохранений) код символа в исходнике превращается в фактическое значение (литерал). Что хочется: 1. как прибить это "превращение" (т.е. чтобы в исходнике всегда был код, а не литерал); 2. как из JS вставлять в документ литерал по коду (принудительно делать рендеринг кода в литерал). |
Часовой пояс GMT +3, время: 11:23. |