|
|
|||||
Я описал в первом посте. И только что записал видео со сравнением в Firefox и Opera: http://youtu.be/8CZNOPJLfLo (в видео я сначала использую Firefox, затем — Opera).
|
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Не, я знаю как все это выглядит. Но вопрос в том, как это связано с совместимостью браузеров.
Как пример. Однажды я создал код, который стал выглядеть ошибочно. Но это было однажды. Но Wolsh время от времени просит исправить его код, который после его постинга ломается. То есть, у него это происходит часто. Вопрос - почему у меня это было однажды, а у него часто? С помощью видео проблемы не решить. Нужен лог снифера, который фиксирует все запросы от правильно публикования кода, и от поломанного. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Не "часто", а "всегда".
Именно как описали выше. Разные браузеры не пробовал. Джава установлена, как у всех ФДшников)) Каких-то хитрых плагинов на лисе нет. Вот попытка запостить и потом изменить код в безопасном режиме Фаерфокса (все плагины отключены). Код 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); } } }
__________________
Reality.getBounds(this); |
|
|||||
strange mood
|
Зарылся немного в код. При нажатии на кнопку редактирования идет запрос к ajax.php, который возвращает хтмл-код редактора. Всем кроме лисы приходит обычная текстареа, а лисе отдается ифрейм с полноценным wysiwyg-редактором. И вот в него-то AS3-код попадает вместе с хтмл-форматированием, хотя в этом случае оно должно с него сниматься (точнее изначально не надеваться на сервере) и заменяться псевдотегами по краям, как это происходит с [php] например.
Соответственно нужно пофиксить серверную часть по аналогии с форматированием php.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 13.03.2012 в 15:24. |
|
|||||
strange mood
|
Цитата:
[IMG]http://img849.**************/img849/2923/iframe.th.png[/IMG]
__________________
тонкий тролль, осеянный благодатью |
|
|||||
В ответе с сервера приходит не iframe, но все-таки он потом выстраивается в окне редактирования.
Вот пример: Код. 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() ); } Цитата:
Цитата:
Цитата:
|
|
|||||
strange mood
|
Поправка: ифрейм не приходит, а создается программно, похоже за это отвечает vbulletin_textedit.js, метод set_editor_contents при wysiwyg_mode == true. Значение этой переменной приходит от сервера внутри атрибута mode.
vB_Editor[this.editorid] = new vB_Text_Editor(this.editorid, B.getAttribute("mode"), B.getAttribute("parsetype"), B.getAttribute("parsesmilies")); Переменная B определяется чуть ранее: Ну а C.responseXML - это то, что приходит с сервера.
__________________
тонкий тролль, осеянный благодатью |
Часовой пояс GMT +4, время: 10:30. |
|
« Предыдущая тема | Следующая тема » |
|
|