Перейти к контенту

ББ-коды в FireFox - решение проблемы


Рекомендуемые сообщения

Идею подсмотрел на sysman.ru, но сделал иначе. ИМХО, так проще.

 

html/UBBC/ubbc.js

Найти:

  function getText() {
if (ie) {
  return ((form["Post"].createTextRange && form["Post"].caretPos) ? form["Post"].caretPos.text : '');
} else { return ''; }
 }

Заменить на:

  function getText() {
if (ie) {
  return ((form["Post"].createTextRange && form["Post"].caretPos) ? form["Post"].caretPos.text : '');
} else {
if(form["Post"].selectionStart){
if(form["Post"].selectionEnd==form["Post"].selectionStart){return ''}
else{return form["Post"].value.substr(form["Post"].selectionStart,form["Post"].selectionEnd-form["Post"].selectionStart);}
}
else{
return '';
}
}
 }

 

 

Найти:

  function ubbCode(code) {
if (form["Post"].createTextRange && form["Post"].caretPos) {
  var caretPos = form["Post"].caretPos;
  caretPos.text = code;
} else { form["Post"].value += code; }
form["Post"].focus();
 }

заменить на:

  function ubbCode(code) {
if (form["Post"].createTextRange && form["Post"].caretPos) {
  var caretPos = form["Post"].caretPos;
  caretPos.text = code;
} else	{
if(form["Post"].selectionStart){
var sel1 = form["Post"].value.substr(0,form["Post"].selectionStart);
var sel2 = form["Post"].value.substr(form["Post"].selectionEnd,form["Post"].value.length-form["Post"].selectionEnd);
form["Post"].value = sel1+code+sel2
}
else{
form["Post"].value += code; 
}
		}
form["Post"].focus();
 }

 

Теперь ББ-коды и в файерфоксе вставляются не в конец текста ввода, а куда надо.

Ссылка на комментарий
Поделиться на других сайтах

С твоими-то знаниями сисман.ру должен у тебя подсматривать! :D
Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Может быть я что-то не так понял?

Но у меня в каталоге html есть только файл ibfcode.js (v1.3.1 Final)

И в файле ibfcode.js я таких фрагментов кода не нашел.

Подскажите пожалуйста, в чём ошибка ?

 

И еще: отчего у меня 100% предупреждений - в левой колонке внизу ?

Ссылка на комментарий
Поделиться на других сайтах

А есть такое решение для просто v1.3.1 Final ? (в поиске не нашел)

У меня нет 1.3.1.

Поищи, где в скриптах используется createTextRange - именно эти места файерфокс не понимает, и их приходится латать.

Ссылка на комментарий
Поделиться на других сайтах

  • 4 месяца спустя...
однако работает только начиная со второго символа

если выделить первое слово, то всё равно ставится в конец

Пишите претензию разработчикам файерфокса.

Если они вместо стандартного метода createTextRange придумали свои нестандартные selectionStart и selectionEnd, да еще и сделали их криво... у меня пока нет идей, как это исправить на уровне сценария.

Ссылка на комментарий
Поделиться на других сайтах

  • 6 месяцев спустя...
Решение проблемы со вставкой BBCodes при редактировании сообщений в Firefox и всех остальных браузерах для Invision Board 1.3 : Improved Post Editor script.
Ссылка на комментарий
Поделиться на других сайтах

прикольна ... только под FF что-то не хочет, хотя в demo прекрастно работает, скешировалось чтоль
Ссылка на комментарий
Поделиться на других сайтах

  • 11 месяцев спустя...
Теперь ББ-коды и в файерфоксе вставляются не в конец текста ввода, а куда надо.

 

У меня версия от Игорька. Сделал, как ты написал, — ноль реакции, осталось как было. :D

 

Ты пишешь, что идею подсмотрел на sysman.ru. Я там сегодня всё перерыл - не нашёл, откуда ты брал? Там только твоё решение.

 

А Improved Post Editor script хотел попробовать - уже удалён файл.

Ссылка на комментарий
Поделиться на других сайтах

Ты пишешь, что идею подсмотрел на sysman.ru. Я там сегодня всё перерыл - не нашёл, откуда ты брал?

Увидел, что у них работает, и раздербанил их скрипт. ;)

 

ноль реакции, осталось как было. :D

Может из кеша старый скрипт грузится?

 

Посмотри, на vesvalo.net будут проблемы?

Ссылка на комментарий
Поделиться на других сайтах

Попробовал эти 2 варианта и все равно не работают

Только в эксплоере все нормально, а в мазила и опера не работает не с изи вариант, не от сюда

  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

И я попробовал оба кода — не работают.

 

FatCat, глянь, пожалуйста, мой исправленный ubbc.js — может, там что-то не так? http://narod.ru/disk/13323909000/ubbc.js.html

Ссылка на комментарий
Поделиться на других сайтах

Ура! Заработало! Взял из нетронутого дистрибутива файлы, залил их на тестовый аккаунт, поправил ubbc.js — и всё запахало! Видимо, в каком-то из файлов я что-то когда-то правил, и это "что-то" как-то конфликтовало с этим модом.

 

Теперь осталось решить проблему первого знака: если выделять текст с самого начала - не работает. Об этом уже писали здесь, и решения пока нет.

 

Я вот что думаю. У меня стоит мод (брал отсюда), который позволяет делать абзацы клавишей Spase (то есть как юзер отбил пробелы, так они и остаются после публикации поста). А что если сделать мод (а мож, он уже есть?), который принудительно бы отбивал абзацы? То есть чтобы курсор сразу бы ставился не в самый левый край текстового поля, а, например, с тремя-четырьмя пробелами или даже с одним? Тогда и выделить от самого края текст не получится. Может, в этом случае заработает наш мод BB-кодов с самого первого знака?

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.