![]() |
Баг с форматированием кода AS
На этом форуме уже очень давно наблюдается баг:
Если я создаю пост в котором есть какой-то код с форматированием AS (AS3 не проверял), например: Код AS1/AS2:
http://www.flasher.ru/forum/images/r..._collapsed.gif Код AS1/AS2: var result_lv:LoadVars = new LoadVars(); result_lv.onLoad = function(success:Boolean) { if (success) { loadPic(result_lv.reelimg); } else { result_ta.text = "Error connecting to server."; } }; var send_lv:LoadVars = new LoadVars(); send_lv.action = 'reel'; send_lv.sendAndLoad(linkBase + "uipics.php",result_lv,"POST"); Из-за этого и из-за человеческого фактора (все делаем ошибки) приходится по много раз редактировать один и тот же пост пока он не приобретет нормальный вид. |
Про баг знаю, я с ним сталкивался всего один раз, но давно, а вот Wolsh с ним постоянно мучается, так что не понятно откуда у него ноги растут.
|
По моему ноги у этой проблемы растут из java-движка, который устанавливается на комп. Потому что только что попробовал оформить код as в сафари на айпэде и этого бугу не было.
Но бага не было потому что когда я нажал "изменить", то увидел тот же код обрамленный тегами . А когда редактирую с компа в фаерфоксе, то я вижу не текст с тегами, а оформленный в рамочке и с подсвеченным синтаксисом блок аналогичный тому что будет в посте. |
У меня фаерфокс (версии разные, как и ос: win xp и mac os), опера, хром, сафари, ие - нигде проблем нет.
PS. java и javascript это разные вещи. |
Да, я говорю именно про java. По-моему (давно это было), форум предлагает установить яву для тех у кого она еще не установлена. И похоже что именно с java проблемы или с обработкой java форумом.
|
Форум не использует java
|
ага... значит я с чем-то перепутал...
И похоже, что проблема в совместимости с браузерами. Итак, проверил в: – Firefox — баг есть – Opera — нету – Safari для Windows — нету – Safari на iOS — нету – Chrome — нету – Internet Explorer 9 x64 — баг есть – Internet Explorer 9 x32 — баг есть |
А в чем она выражается?
Я бы попытался найти, но как уже говорил, сталкивался с этим один раз. Если бы у меня это происходило постоянно, то я бы тупо запустил сниффер и постил один и тот же код, до появления бага. А потом сравнил результаты. |
У меня в лисе такое есть. Началось с установки 4-ой версии (но, возможно, не в версии дело). Я вот думаю, может это связано с дополнениями? У меня напр. файербаг стоит. А у тебя iNils он есть?
|
Конечно есть :) И море других плагинов :)
|
Цитата:
|
Не, я знаю как все это выглядит. Но вопрос в том, как это связано с совместимостью браузеров.
Как пример. Однажды я создал код, который стал выглядеть ошибочно. Но это было однажды. Но Wolsh время от времени просит исправить его код, который после его постинга ломается. То есть, у него это происходит часто. Вопрос - почему у меня это было однажды, а у него часто? С помощью видео проблемы не решить. Нужен лог снифера, который фиксирует все запросы от правильно публикования кода, и от поломанного. |
Не "часто", а "всегда".
Именно как описали выше. Разные браузеры не пробовал. Джава установлена, как у всех ФДшников)) Каких-то хитрых плагинов на лисе нет. Вот попытка запостить и потом изменить код в безопасном режиме Фаерфокса (все плагины отключены). http://www.flasher.ru/forum/images/r..._collapsed.gif Код AS3: package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; /** * ... * @author wolsh */ public class Main extends Sprite { private var _sprite:Sprite; private var _modalSprite:Sprite; private var _container:Sprite; private var _sprite2:Sprite; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point _container = new Sprite(); addChild(_container); //// В контейнер поместим "кнопку", одну из 128 тысяч. _sprite = new Sprite(); _sprite.graphics.beginFill(0x000000); _sprite.graphics.drawRect(0, 0, 150, 100); _sprite.x = _sprite.y = 150; _sprite.name = "DISABLED"; _container.addChild(_sprite); _sprite2 = new Sprite(); _sprite2.graphics.beginFill(0x00FF00); _sprite2.graphics.drawRect(0, 0, 50, 50); _sprite2.x = _sprite2.y = 10; _sprite2.name = "DISABLED 2"; _sprite.addChild(_sprite2); //// А это якобы модальное окно, которое будет оставаться активным, //// когда контейнер заглохнет. _modalSprite = new Sprite(); _modalSprite.graphics.beginFill(0x008844); _modalSprite.graphics.drawRect(0, 0, 100, 50); addChild(_modalSprite); _modalSprite.x = _modalSprite.y = 120; _modalSprite.name = "MODAL"; //// Вешаем слушателей. Для наглядности я сделал один хендлер //// и для спрайта в контейнере и для модального окна. Это не важно)) _modalSprite.addEventListener(MouseEvent.CLICK, clickHandler); _sprite.addEventListener(MouseEvent.CLICK, clickHandler); _sprite2.addEventListener(MouseEvent.CLICK, clickHandler); //// Внезапно: Отключаем захват клика для контейнера и всех его 128 тысяч кнопок. //// _sprite с этого момента не получает события клика. _container.mouseChildren = false;// addEventListener(MouseEvent.CLICK, clickStopper, true); } private function clickStopper(event:MouseEvent):void { event.stopPropagation(); } private function clickHandler(event:MouseEvent):void { var s:Sprite = event.target as Sprite; if (s != null) trace("Clicked", s.name); } } } |
Зарылся немного в код. При нажатии на кнопку редактирования идет запрос к ajax.php, который возвращает хтмл-код редактора. Всем кроме лисы приходит обычная текстареа, а лисе отдается ифрейм с полноценным wysiwyg-редактором. И вот в него-то AS3-код попадает вместе с хтмл-форматированием, хотя в этом случае оно должно с него сниматься (точнее изначально не надеваться на сервере) и заменяться псевдотегами по краям, как это происходит с [php] например.
Соответственно нужно пофиксить серверную часть по аналогии с форматированием php. |
Посмотрел снифером. Нигде iframe в FF не увидел. Тот же самый textarea.
|
http://www.flasher.ru/forum/images/r..._collapsed.gif Код AS3:
var result:LoadVars = new LoadVars(); тест Код:
var result:LoadVars = new LoadVars(); |
Цитата:
[IMG]http://img849.**************/img849/2923/iframe.th.png[/IMG] |
Нет его у меня) Я поиском набивал еще в прошлый раз iframe и ничего не нашлось.
|
В ответе с сервера приходит не iframe, но все-таки он потом выстраивается в окне редактирования.
Вот пример: Код. Код AS3:
Цитата:
Цитата:
Цитата:
|
Поправка: ифрейм не приходит, а создается программно, похоже за это отвечает vbulletin_textedit.js, метод set_editor_contents при wysiwyg_mode == true. Значение этой переменной приходит от сервера внутри атрибута mode.
Код AS3:
Переменная B определяется чуть ранее: Код AS3:
|
fish_r, интересует логи снифера у тех, у кого наблюдается баг. Логи с нормального кода я и сам могу снять :)
|
А, ну тогда результат редактирования:
http://www.flasher.ru/forum/images/r..._collapsed.gif Код AS3: private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point var viewer0:WMViewer0 = new WMViewer0(); this.addChild( viewer0 ); ///вьюер входа в приложение. //this.addChild( new WelcomeViewer( new WelcomeM() ) ); //this.addChild( new WelcomeViewer() ); } |
И зачем они мне? :D Мне нужны логи запроса и ответа в момент нажатия кнопки "изменить" и сохранить.
|
Сейчас ещё лог "сохранить" добавлю.
Вот это при создании уходит: Цитата:
Цитата:
|
сниффер http://www.nirsoft.net/utils/smsniff.zip Результаты лучше сохранить в ssp
Должно быть что-то вроде такого Код:
[13.03.2012 16:04:24:171]Код:
[13.03.2012 16:04:24:203] |
Код AS3:
PHP код:
Обратите внимание на то, в каком виде приходит AS3-код, а в каком PHP (строки 96 - 108). Предыдущий дамп fish_r тоже был вполне себе бажный, и околесица там начинается со слов "BEGIN TEMPLATE: bbcode_as3code". Блин, надо перезайти на форум, чтобы айдишник сессии сменился (: |
Код AS3:
|
Код AS3:
|
Gaen нашел источник проблем.
Заходим в "Мой кабинет", раздел "Опции". В самом низу ищем "Интерфейс редактора сообщений" И меняем "Визуальный редактор - расширенный интерфейс" на "Стандартный редактор - с контролем форматирования". |
у наконец-то!))
Всем спасибо, Gaenу плюсик в карму!)) |
Костыль-way же :)
iNils, когда там братья уже дадут доступ к серверу?) |
Цитата:
|
| Часовой пояс GMT +4, время: 07:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.