Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Mozilla и TextArea, Траблы со скролом 
:(
    Опции темы
sergejzr
Дата 11.7.2004, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



Итак продолжаем тему "Mozilla".

наверняка многих юзеров Мозиллы раздражает факт, что после вставки тэгов/цитат текст скролится вверх если textArea заполнен до конца.
После такой вставки необходимо скролить текст обратно на место и скать, где же стоял кусор...

Теперь Patch:
Со строки 198: в файле ubbc.js начинается функция storeCaret
Перед функцией следует добавить глобальные переменные:

Код

//С помощью этих переменных нетскейп запоминает позицию в тексте
var selStart=0;
var selEnd=0;
var scrTop=0;


Саму функцию следует заменить на:
Код
/////////////////////////////
// Misc utils
//
 function storeCaret(el)
 {
  if(ie)
  {
     if (el.createTextRange)
     {
       el.caretPos = document.selection.createRange().duplicate();
     }
    }else
    if(n6)
    {//Тут добавлено сохранение позиции
      var post=form["Post"];
      selStart=post.selectionStart;
      selEnd=post.selectionEnd;
      scrTop=post.scrollTop;
    }
 }


Теперь
Строка 138 в файле ubbc.js
Здесь находится функция ubbCode
её следует заменить на:
Код
/////////////////////////////
// Code inserter
//
function ubbCode(code) {
/*Для эксплорера оставим как было*/
if(ie){
 if (form["Post"].createTextRange && form["Post"].caretPos)
 {
   var caretPos = form["Post"].caretPos;
   caretPos.text = code;
 } else { form["Post"].value += code; }
 }
else  /*пошёл нетскейп/мозилла*/
if(n6) {        
     var post=form["Post"];

/*Тут делим техт из поста на две части 1) до выборки 2) после выборки*/
     var firstPart=post.value.substring(0,post.selectionStart);
     var lastPart=post.value.substr(post.selectionEnd);

/*ну и запишем правильный текст обратно в пост*/
     post.value=firstPart+code+lastPart;
     
/*Возвращаем курсор на место */
     var post=form["Post"];
     post.selectionStart=selStart+code.length;
     post.selectionEnd=post.selectionStart;
     post.scrollTop=scrTop;
     }
     else{form["Post"].value += code;}
 
 form["Post"].focus();
}


Попробовать можно здесь smile.gif:
http://www.iwi-iuk.org:8081/pr/vingrad/

Это сообщение отредактировал(а) sergej.z - 11.7.2004, 21:47


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Borland_Delphi_6
Дата 11.7.2004, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: 4
Всего: 20



sergej.z
Спасибо, будет здорово, если этот баг пофиксят! Меня это тоже достает sad.gif


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Wowa
Дата 13.7.2004, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 79
Всего: 290



Исправил, прошу проверить.
PM WWW   Вверх
sergejzr
Дата 13.7.2004, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



100% smile.gif

Спасибо!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 17.7.2004, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



Цитаты и имена участников вставляются тоже на конец. Не только в мозилле но и в осле тоже.

Патч надо бы подправить скрипт:
файл quote.js

вот две новые функции smile.gif

Код

//Как видно, мы вставляем цитаты и имена так же, как тэги. Функцией ubbCode().
//А эта функция уже отлично везде работает :)
function ins(name)
{
 if (name!="")ubbCode("[quote]"+name+"[/quote]\n", 1);
}

function Insert(text){
if (text!="") ubbCode("[quote]"+text+"[/quote]\n", 1);
}


Весь файл тут:
http://www.iwi-iuk.org:8081/pr/vingrad/html/quote.js

Ну вот, после патчей кода иногда даже меньше становится smile.gif

Большое спасибо smile.gif


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 17.7.2004, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



Ну вот. Линк на тест-страницу дать забыл smile.gif
http://www.iwi-iuk.org:8081/pr/vingrad/quote.html


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Monty
Дата 17.7.2004, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: 1
Всего: 27



Цитата
Большое спасибо

Да нет, это тебе спасибо smile.gif ... щас посмотрим smile.gif
Добавлено @ 16:29
есть есть недочеты smile.gif
Добавлено @ 16:30
сорри, это уже Мозила со своим переносом smile.gif smile.gif smile.gif
Добавлено @ 16:31
кстати, а зачем вставлять в конец строки каретку перевода строки? smile.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
sergejzr
Дата 17.7.2004, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



Цитата
есть есть недочеты

Monty, ты просто умница! Давай недочёты, будем фиксить smile.gif

Цитата
кстати, а зачем вставлять в конец строки каретку перевода строки?

Это сильно страшно? Дело в том, что она не специально вставляется. Текст такой приходит. Иначе надо будет парзить....




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Monty
Дата 17.7.2004, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: 1
Всего: 27



Цитата
Это сильно страшно?

Нет, это не сильно страшно, но, вдруг понадобиться вставить цитату в середину текста? smile.gif ... пускай так и будет smile.gif ... не надо обременять скрипт новым кодом и тем более новыми багами и затратами процессорного времени smile.gif

... а баги? smile.gif Достаточно несколько раз поглядеть код, но не просто поглядеть, а как бы сыграть роль виртуального отладчика ... так я у себя нахожу ошибки, которые я практически не мог найти отлаживаю программу smile.gif ... например применть тип Int64 место Integer smile.gif ...


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Обсуждение форума | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.