форум vBSupport.ru > vBSupport.ru > News > Авторская колонка
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
kerk
k0t
 
kerk's Avatar
Default Opera 12.xx и ббкоды
6

Исследование этой проблемы началось с того, что новая опера, начиная с линейки 12.хх перестала корректно обрабатывать стандартные яваскрипты
может быть это только моя локальная проблема, на моем компе и ОС win XP, хз....
....
когда курсор находится в поле текстового редактора и когда нажимается сочетание клавиш Ctrl+B, Ctrl+U и Ctrl+I, вобла вставляет соответствующие ббкоды: Bold, Underline, Italic
в яваскриптах движка есть соответствующие функции, которые обрабатывают события нажатий клавиш (сочетания), конкретно, это находится в файле vbulletin_textedit.js стр. ~3361
vB_Text_Editor_Events.prototype.editdoc_onkeypress = function(e)
стандартная функция яваскрипта, которая преобразует цифровое значение нажатой клавиши в символ и затем вставка соотв. ббкода в редактор

Code:
var code = e.charCode ? e.charCode : e.keyCode;
String.fromCharCode(code)
работало это все прекрасно до тех пор, пока не установил новую версию Оперы

все браузеры возвращают соответствующие нажатой клавише (e.keyCode || e.charCode) значения (даже ешак)
  • B => 98
  • U => 117
  • I => 105
Опера 12.14 (последняя на данный момент), возвращает такие значения
  • B => 2
  • U => 9
  • I => 21
если это не мои локальные проблемы, то решений как оказалось может быть два
1 костыль в файлах яваскриптов
2 установка расширения в "глючную" версию оперы

1. файл vbulletin_global.js найти
Code:
var is_opera  = (YAHOO.env.ua.opera > 0);
и ниже добавить
Code:
var is_opera_12  = (is_opera && userAgent.match(/version\/12\./g)) ? true : false;
затем в файле vbulletin_textedit.js заменить кусок функции
Code:
           switch (String.fromCharCode(code).toLowerCase())
           {
                case 'b': cmd = 'bold'; break;
                case 'i': cmd = 'italic'; break;
                case 'u': cmd = 'underline'; break;
                default: return;
           }
на этот
Code:
        if(is_opera_12)
        {
            switch (code)
            {
                case 2: cmd = 'bold'; break;
                case 9: cmd = 'italic'; break;
                case 21: cmd = 'underline'; break;
                default: return;
            }
        }
        else
        {
            switch (String.fromCharCode(code).toLowerCase())
            {
                case 'b': cmd = 'bold'; break;
                case 'i': cmd = 'italic'; break;
                case 'u': cmd = 'underline'; break;
                default: return;
            }
        }
2. переходим по линку и ставим расширение
там в настройках можно посмотреть, какие хоткеи и ббкоды поддерживаются
можно и переназначить сочетание клавиш
скрин настроек ниже

Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Luntick
На доске почёта
Прощаемся
 
banned nax
Default
0

Как бы ещё победить IE-9.
Проблемы у него тоже с редактором - исчезает курсор. Печать можно, но нет курсора, что очень неудобно при правке текста. Другая проблема была в том, что эффект проявлялся не всегда. В добавок указанный эффект наблюдал только на своих форумах.
Помог счастливый случай. Пришлось печатать в редакторе абсолютно другого движка и этот эффект проявился. Упуская ход расследования, в сухом остатке оказалось то, что причина была во флэшке на странице с редактором. Решение проблемы было кардинальное, отключение флэш на страницах с редактором.
Вот, как бы этот баг IE пофиксить хотя бы для булки.
 
 
kerk
k0t
 
kerk's Avatar
Default
2

на форуме фанатов оперы, подтвердили, что это проблема именно браузера, а не моя "местечковая"
начиная с первых билдов линейки 12.хх
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 09:06 AM.


Powered by vBulletin® Version 3.0.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...