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

ББ-коды в 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-кодов с самого первого знака?

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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