|
Модераторы: Sardar, Aliance |
|
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Вопрос: Как вставить текст под курсором.
Столкнулся сегодня с этой задачей, решил ответить на него один раз с рабочим кодом. Надеюсь больше этот вопрос не всплывёт В разных браузерах по разному можно узнать где находится каретка в текстовом поле. Точнее только в Мозилле на данный момент есть возможность узнать положение каретки опрашивая поля:
В ИЕ есть полезный обьект document.selection который может достать нам обьект DOM'овский обьект(ну почти DOM'овский ) TextRange. Изменяя этот обьект мы изменяем содержимое селекции. Селекция здесь в самом широком смысле! То есть мы можем таким же образом работать над всем содержимым страницы. В Опере код работать не будет, по старинке текст добавляется в конец. Следующая сложность это не потерять селекцию(положение курсора) при клике на внешний элемент. Будем отлавливать события потери фокуса, клика и т.д., записывать "позицию курсора" и использовать её когда нужно. В моём коде есть потенциальная ошибка: если отселектировать текст, затем кликнуть где нибудь по странице, а затем по кнопке вставляющей новый текст, то он будет вставлен в записанную позицию, что не совсем верно - селекция должна исчезнуть если кликаем не по кнопке. Решается отловом событий на body и сбросом записанной селекции, но это по вкусу Код с коментариями:
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Alx |
|
|||
Ajaxy Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: нет Всего: 78 |
аааааааа
Sardar ты монстр! господи, я и не представлял, что эти чёртовы разные браузеры могут делать из одной простой функции в ИЕ такую туеву хучу всякого кода! Это сообщение отредактировал(а) Aliance - 24.3.2005, 01:15 |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Кода на самом деле не много(подсветка убила форматирование), просто возможности чуть шире
Забываем о текстовом поле, создаем обьект и работаем с созданным обьектом. Смотри пример, запусти. Это сообщение отредактировал(а) Aliance - 24.3.2005, 01:15 -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Black |
|
|||
Web-Development Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: 2 Всего: 45 |
ALEXANDRO
где Сардар подвел итог я не нашел зато сделал что хотел :-) набо было то всего:
вот что я хотел -------------------- Могу все, но ничего не умею :-) |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
PHP-DIRECTOR если не понял, значит удалять ничего не буду...
Поделим мир на 3 части:
Также нужно запоминать позицию курсора при потере фокуса, ведь если ты кликнешь на кнопку, то фокус с текстового поля уйдёт Разбирай мой код, там сразу станет ясно Как его использовать:
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Sardar
Огромное спасибо за данный код, это просто бестцеллер :-) 6 с половиной баллов |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Aliance на логе по аське можно создать небольшой мануал, а то вижу народу не ясно
Скинь ссылки на примеры что наверстали, будет интересно. А вообще надо смотреть исходник в новом дизайне, там многие фичи включая эту используются. Ждём когда его введут -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Не хотел радовать преждевременно, но завтра (точнее уже сегодня, но после ночи) я как раз собирался выложить готовый пример, с комментариями. без лишнего мусора.
|
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Новая Опера включена?
|
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Опера вроде бы обьект selection поддерживает, следовательно должно работать, если они от поведения ИЕ не отклонялись. В любом случае надо потестить.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Пример тут: http://files.vingrad.ru/Aliance/bbcode.html
|
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Блин! Эта Опера опять выделывается...
У меня к сож времени нету разбираться |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Очень странно, как будто TextRange.parentElement не поддерживается... Поставлю у себя этого зверя, пофиксю, в новом скине этот код применяется... ведь обещали нормальную поддержку... На opera.com последняай документация на версию 7, о 8 только реклама...
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
||||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
А функция «Быстрой цитаты» работает по этому же коду/принципу?
|
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
С ие и мозиллой он всегда работал. проблема только с Оперой
Нет, когда сделали сперва, то всем ужастно не понравилось, что цитата в курсор вставлялась. Было очень неудобно. Добавлено @ 18:57 http://forum.vingrad.ru/index.php?showtopic=32152&hl= Где то здесь обсуждали |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
А как тогда сейчас? Впринципе, различие там только в том, чтобы только отселектрированный текст вставлять... |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Value+=цитата
|
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
sergej.z, а я цитату в новом дизайне под курсором вставляю, нужно исправить...
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
А чего так? =/ |
|||
|
||||
sergejzr |
|
||||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Вот, нашёл http://forum.vingrad.ru/index.php?showtopi...58&unread=1&hl=
Как видишь... |
||||
|
|||||
Wolf1994 |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: нет Всего: 29 |
Что-то я не смог разобраться с установкой примера, предложенного Sardar'ом, под IE 6. В JavaScript я разбираюсь плохо, поэтому не смог проанализировать код. Как мне кажется, не записывается позиция курсора - вставка у меня осуществляется в конец текста. Возможно я что-то не так сделал, тогда, пожалуйста, подскажите - что?
Файл HTML:
Файл "insert.js":
|
||||
|
|||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
|
|||
|
||||
-NIK- |
|
|||
Unregistered |
эм, я очень слаб в JavaScript, это только для IE? Если да, то имхо есть вариант легче.
А готового кода для Мазиллы нет? Мне очень нужно, самому разобраться не получается. Помогите пожалуйста! |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
-NIK-, Sardar "только для ИЕ" не пишет
|
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Модератор: Сообщение скрыто. |
|||
|
||||
Alx |
|
|||
Ajaxy Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: нет Всего: 78 |
я вот чего не понял. мы в мозилле, когда хотим заменить выделение, мы делим на три части, потом заменяем среднюю часть, опять соединяем в одну часть и полностью заменяем на неё содержимое инпута?
|
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Именно так. В версии 1.5 возможно кое что и изменилось. Например document.selection теперь обьектом стал. Но это надо ещё посотреть что, да как. Пока некогда.. |
|||
|
||||
Alx |
|
|||
Ajaxy Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: нет Всего: 78 |
ок, спасибо.
решений для других браузеров, кроме IE и Firefox так и нету, да? |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
решение Сардара работает н всём, кроме оперы <8.0 (для старых опер решения нет. программисты там - пофигисты )
|
|||
|
||||
3,14 |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
У меня не работает в IE (пишет object doesn't support this property or method), если выделение текста в textarea сделать двойным кликом.
IE Version: 6.0.2900.2180.xpsp_sp2_gdr.050301-1519 -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
SANCHOS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 6.5.2006 Репутация: нет Всего: нет |
А чем вам не нравится более простой вариант для этого действия?
text1,tex2,text3 можно заменять чем угодно. |
|||
|
||||
godsgame |
|
||||
Бывалый Профиль Группа: Участник Сообщений: 241 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
ммм.. потратил много времени пытаясь подключить эти ф-ции... Сначала получал ошибку Object not defined/expected или что-то в этом роде... потом решил для начала просто подключить файл..
Получил ошибку: Syntax Error on line 94 подключаю так:
файл:
Я даже закоментил ОНЛОАД... но и это не помогло. Помогите пожалуйста разобраться... ЧЯто-то мне подсказывает что у меня руки кривые. |
||||
|
|||||
godsgame |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 241 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
нашел ответ тут:
спасибо Ciber SLasH ! |
|||
|
||||
GZep |
|
||||||
участник Винграда Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Sardar, ваш вариант немного не верен...
Вот кусок вашего кода:
Тогда как вместо него надо:
Все дело в том, что mac версия ИЕ поддерживает document.selection, но не поддерживает document.selection.createRange . Вот так вот. Теперь попрошу кого-нибудь помочь мне со своим кодом: (пример Sardar'a мне не подходит) Собственно, что не работает: Все прекрасно работает кроме изменения позиции курсора в ИЕ(у меня стоит 7-я финальная версия)... С остальными браузерами все просто отлично. Вот код(прямо копируйте и вставляйте в файл для запуска, форма, кнопки и т.д. уже имеются):
Помогите пожалуйста! Не знаю, почему этот ие не хочет никак курсор двигать, ни в какую... Это сообщение отредактировал(а) GZep - 11.2.2007, 21:56 -------------------- |
||||||
|
|||||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Да там многое что нужно переделывать, добавлять поддержку множественных селекций и прочее. Руки не дойдут, пока у себя где не запользую, не сдвигаеться с места. Коллапсировать селекцию это прировнять начало к концу или конец к началу, смотря какое направление. Следовательно если передвинуть конец и сколлапсировать селекцию, то передвинем курсор куда нужно. В твоём случае двигаем только если текста в селекции не было, следовательно достаточно только cursor.moveEnd("character", -close.length);. На одном поле может быть масса селекций, это такие хендлеры по тексту, помогающие изменять его в некотором месте. Селекция на экране это нечто другое, она обычно одна. Вызовом .select() мы переносим селекцию на экране под конкретную селекцию в скрипте. Короче что бы курсор реально передвинулся -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
GZep |
|
||||
участник Винграда Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
А cursor.moveStart в моем случае можно не вставлять? Это потому что отсутствует выделение, а имеется только позиция курсора? А как тогда поставить курсор в ие в самый конец строки? Не выделенной части а всей строки целиком...
Эта такая особенность в ие? А вот еще проблема появилась:
Почему так? Это сообщение отредактировал(а) GZep - 12.2.2007, 17:26 -------------------- |
||||
|
|||||
Sardar |
|
||||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Если не нужно ставить курсор, то не нужно, но тогда и .select() убери. "Курсор" == селекция с нулевой длинной.
Читай абзац выше. Отселектировать всё что нужно, сколлапсировать в начало или в конец. Можно и move(End|Start) использовать. Только не забудь .select() на конце, что бы реальная селекция на экране изменилась. Нет, это спецификация selection. Потому что после установки текста селекция всегда коллапсируется. Сделай с неё дубликат, он по моему не должен изменяться. Хотя у ИЕ с дубликатами глюки есть, можно двигать концы одной селекции, а дубликат "магическим способом" тоже будет изменяться. Больше на эту тему в основном разделе о indent'aх в питоне, фича к форумскому полю ответа по ctrl+[]. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
GZep |
|
|||
участник Винграда Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Вот я как раз это и применял, только толку без .select() не было. Вот в этом, наверное, и была вся проблема. Вот я там был Только я там думал нормальных примеров найти и уже их использовать... Спасибо, буду копать, думаю, скоро разберусь и выложу тут как сделать. Sardar, Даже не знаю, что сказать. Такая помощь! Да чтобы я без Вас делал! Да, наверное позже выложу свой универсальный вариант, который, думаю, многим понравиться. Это сообщение отредактировал(а) GZep - 12.2.2007, 20:13 -------------------- |
|||
|
||||
GZep |
|
|||
участник Винграда Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Sardar, помогите, пожалуйста, не работает. Вот пример использования: [только_что_вставленный_тег][текст][/только_что_вставленный_тег][курсор] - все правильно, мне так и надо! [только_что_вставленный_тег][текст][/только_что_вставленный_тег][курсор][предыдущий_тег][текст][/предыдущий_тег] - нет, мне надо, чтобы курсор в самом конце стоял! По-моему надо расширить конечную точку селекции до конца формы ввода, чтобы добиться нужного результата... Только вот не получается... Вот что нахимичил...:
Это только кусок, естественно, кода. -------------------- |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Не знаю зачем ставить курсор всегда в конец поля, но можно просто отселектировать всё содержимое и коллапсировать селекцию в конец.
Обернуть поле в селекцию можно методом .moveToElementText. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
GZep |
|
|||
участник Винграда Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Вот так, вроде, должно работать, но опять
Просто на самом деле уже интересно: получится так сделать или нет. Sardar, посмотрите, пожалуйста, что там не так? -------------------- |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Это вообще откуда? Как end вычислил? И вообще зачем, если ты уже отселектировал всё. Я сказал коллапсировать, т.е. .collapse(true) -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
GZep |
|
|||
участник Винграда Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Sardar, спасибо, получилось
Описание кода:
Sardar, посмотрите, пожалуйста, кроссбраузерный ли этот код? Это сообщение отредактировал(а) GZep - 18.2.2007, 12:51 -------------------- |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Вроде кроссбраузерный. Есть пара замечаний:
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Rigel |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 122 Регистрация: 24.7.2007 Где: Москва Репутация: нет Всего: нет |
Получается замечательно, но переход курсора в конец текста не всегда удобен - лучше бы он оставался приблизительно на месте редактирования - только вот никак не придумываетсяЮ как бы это сделать.
--------------------
С уважением. Rigel. http://www.smoliy.ru |
|||
|
||||
gridis |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 9.2.2008 Репутация: нет Всего: нет |
Sardar, здравствуйте, у меня такой к Вам вопрос....
Мне вашь пример очень понравился.... только у меня такая проблема.... мне нужна вставка HTML кода под курсором... в опере и файрфоксе я нормально вставляю через EditField.execCommand('inserthtml',false, ""); ИЕ такой функции нет..... |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Получили селекцию, меняем содержимое через .pasteHTML(html)
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
introtel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.9.2008 Репутация: нет Всего: нет |
спасибо за код. вопрос: а что делать если надо вставить текст под курсором. не ЗАМЕНИТЬ отселектированный текст, а как-то запомнить позицию курсора. в фф это можно а как быть с ИЕ?
Это сообщение отредактировал(а) introtel - 1.6.2009, 15:03 |
|||
|
||||
GogElf |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 16.7.2009 Репутация: нет Всего: нет |
Сам я не местный но хочу внести вклад.
Я не очень много понимаю в javascript (ну на стадии что-то сломать). Меня очень напрягает писать id и по ним чтоб код работал. В общем кому хочется сделать 1 панельку с кнопками на 2-3 или более полей то заменяем:
на
И вписываем onclick
Это сообщение отредактировал(а) GogElf - 17.7.2009, 01:50 |
||||||
|
|||||||
maxipub |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Тема прикреплена... она еще жива?
Заметил странный баг в оригинальном скрипте. FF 3.6.13
Оригинальный код, просто с прописанными данными для textarea. Если выделить мышкой несколько строк, но так, чтоб одна из строк была выделена не полностью, например:
После клика по "Test" будет выполнена некорректная ставка. При выделении мышкой в FF у меня все корректно работает только если выделена лишь часть одной строки, либо несколько строк, но полностью. В общем, очень жаль, наработка вроде ничего, но работает почему-то некорректно. Судя по всему, что-то с обработкой событий. ЗЫ: вот и в IE 8 тоже нашел небольшой баг, но это еще терпимо. К примеру, выделяем строки:
После клика по "Test" будет выполнена корректная ставка, но с некорректным выделением (что выделяется - указано жирным): [test]3 qwerty asdfgh zxcvbn 4 qwerty asdfgh zxcvbn 5 qwerty asdfgh zxcvbn 6 qwerty asdfgh zxcvbn 7 qwerty asdfgh zxcvbn[/test] Т.е. он начало выделения смещает на минус (количество переводов в выделенной строке - 1). Как убрать эти баги? Особенно первый. Или подскажите альтернативу. Сам писал-писал, не вышло. Другие варианты смотрел - не подходят. Необходимо чтоб после вставки текста под курсор, texarea всегда подскролливался к курсору (к месту вставки). Только чтоб без лишних библиотек и наворотов. Обычная же вещь, с чего сложности? Заранее благодарю! |
||||||
|
|||||||
maxipub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Если не понятно о чем речь, могу снять видео и выложить чтоб быстрее было.
Кстати, тут на форуме прогеров (хе-хе ) данная функция тоже не совсем чисто работает. Но то что тут - это уже мелочи. Вообще как на vBulletin сделано - идеал. По крайней мере, так и не нашел к чему докопаться. Другое дело, что что тут, что там - js-ы все шифрованные, собаки. |
|||
|
||||
TsibaSasha |
|
|||
Tsyba Профиль Группа: Участник Сообщений: 4 Регистрация: 20.7.2011 Репутация: нет Всего: нет |
Браво
Уважаю, столько сил и терпения надо иметь, что бы написать такой код для форума) |
|||
|
||||
Sanchezzz |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: нет Всего: 60 |
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |