|
Модераторы: Sardar, Aliance |
|
Гость_12345 |
|
|||
Unregistered |
Что-то такой темы нет, а постоянно нужна, чтобы накапливать знания об особенностях поведения кодов.
Свежие наблюдения. * MozOpacity (-moz-opacity) в Firefox (1.06) есть, но с ней сразу идут в комплекте особенности. 1. Баг перехода на 100%. Если быстро увеличивать непрозрачность (iframe) до 100%, то часто (при больших полях прорисовки, по крайней мере) окончательный переход на 100% (MozOpacity =1;) сопровождается кратковременным пропаданием и новой прорисовкой слоя. Наблюдается неблагопристойный скачок рисования изображения. Возможно, если всегда делать достаточную паузу перед последним переходом (с 0.9 на 1, с 0.95 на 1), этого не будет наблюдаться. 1.а. Но это полбеды. Беда в том, что в любом переходе на 100% _или_обратно_ теряется отображение всех полей ввода документа в iframe. Независимо от того, наблюдался ли визуальный скачок. Вывод - никогда не делать MozOpacity =1, если в слое есть формы. 3. Сильная зависимость от видеокарты. На посредственной карте обновление прозрачного слоя FF при смене прозрачности сильно тормозит. Например, на Ati Rage 128 Pro раза в 3-4 по сравнению с GeForce4. Если во втором случае скорости в FF и IE равны, в первом разница очень большая, и тем больше, чем больше площадь полупрозрачного слоя. 4. (о баге упоминал Sardar) Если в < style > прописана -moz-opacity, это не значит, что она прочитается в (объект).style.MozOpacity. Её придётся дублировать в MozOpacity, чтобы работала с JS. ** Фича Мозиллы. Фон iframe у неё прозрачный, а не белый, как у других. Поэтому документы, не имеющие собственного фона, в них прозрачны. Решение - ставить стиль background-color:white . *** Хорошая фича Мозиллы (Firefox), но из другой оперы (не Оперы). Cуществует объект document.all[0],innerHTML , содержащий коды страницы (правда, насовывает атрибутов _base_href=..., если объявлен, куда не лень), существует document.all.length, document.all[1] и другие нумерованные элементы, в то время как !(!document.all) == false , традиционно, чтобы FF отличать от IE. **** FF при цикле for(i in document) и для прочих объектов имеет в переменной цикла совсем не то, что IE или Opera . |
|||
|
||||
Sardar |
|
||||||||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Смотря какие обьекты перечисляем. Под ИЕ складываеться ощущение что все HTML элементы описанны "внытри" одним общим классом обьектов, что включает в себя все возможные обработчики событий, аттрибуты и т.д. Мозилла и Опера работают согласно DOM рекомендации, где каждый html элемент имеет свой класс с иерархией в верх до Node. ИЕ не перечисляет методы, мозилла перечисляет. Под мозиллой как и под оперой существуют все конструкторы под все html элементы, что позволяет работать с прототипами классов элементов:
Также под мозиллой есть геттеры/сеттеры, как "магические", так и "прямые":
Вообще мозилла многое что поддерживает -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||
|
|||||||||
Ciber SLasH |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
Протестите этот код в IE6:
у меня он намертво вешает его... |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Мамочки... почувствовал себя беспомощным в винде, не мог убить IE, ему явно до лампочки были потуги менеджера задачь... главное последний п***а таки сообщал что "прога убита, сообщить мелкософту о проблеме?", а ИЕ продолжал висет и жрать память. Xавал он её со скоростью 20Мб в секунду, тем самым забивая своп и не давая жить никому, даже менеджер задачь еле-еле, медленно, открывался
Тащусь с винды По коду, похоже ИЕ обращаеться к сорцу картинки, отрабатывает JS, меняеться стиль, ИЕ по новой хочет отрисовать всё, смотрит в обьект картинку, данных нет, опять с сорцу и по кругу в начало... Перед каждой отрисовкой документа вероятно захватывает память, а старую освобождает после отрисовки страницы, отсюда постоянный захват памяти... -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Ciber SLasH |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
Да, уж... вот тебе и IE...
|
|||
|
||||
12345c |
|
|||
Круглый Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Здесь собирают баги новых версий с демонстрациями от разных браузеров:
http://www.gtalbot.org/BrowserBugsSection/ цитата: 1 bug in Mozilla 23 bugs in IE 6 38 bugs in Opera 9 5 bugs in IE 7 |
|||
|
||||
12345c |
|
|||
Круглый Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Ещё 1 различие между IE и FF
Если делаем pre в таблице, в IE всё управляемо с нижним отступом, а в FF, если таблица "обжимает" pre, появляется "пустая строка" в конце его.
-------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
12345c |
|
|||
Круглый Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Свежие баги Оперы 9.01 и свежеобнаруженные - в Gecko.
Роятся они вокруг механизма сохранения предыдущего состояния поля ввода (textarea, input) через defaultValue. (Реализовывалось в группе функций для "вставки текста под курсором".) 1. Опера 9.01, в отличие от мирной 8.01, отказалась работать с defaultValue, но не просто так, а только для тега input! Обходных путей не искал и до причин не докапывался - упомянутый эффект пока что можно наблюдать на указанном выше скрипте (переключить чекбокс на работу с input, сделать действие с кнопкой и нажать кнопку "Back" - отката на действие не произойдёт). 2. Ещё более сильный и потребовавший действий эффект наблюдался в Gecko - FF1.07, NN8.1. На этот раз именно в textarea. Эксплойта сейчас нет, потому что на примере он не прявляется. Когда вставляешь пример в более объёмную страницу, то попытка использовать запоминание в defaultValue каждого действия приводит к невообразимому по неряшливости эффекту наложения сдвинутой части прежней строки на правильную новую, неудаление с экрана этого наложенного остатка текста - в общем, полный стопроцентный баг. Пришлось сменить defaultValue на переменную. Если заинтересует - выложу эксплойт, а пока что знайте - Gecko+textarea+defaultValue +манипуляции с курсором - чревато. 3. Замечу про маленький баг всех, кроме Gecko - попытка вывести очень быстро новый курсор после смены содержания поля ввода ведёт к невыводу этого курсора. Приходится вводить задержку (setTimeout) сколь угодно малой символической величины. Типа "дайте нам со своим хозяйством разобраться, а потом валите следующие задачи". |
|||
|
||||
12345c |
|
|||
Круглый Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Обнаружена такая "фича" FF/Opera, которая ставит её на один уровень с багами. Оказывается, что у них выделение текста в поле ввода выделением не считается - не обнаруживается функцией getSelection(). Практически это приводит к тому, что мы не можем процитировать текст из одного поля ввода в другом. Даже косвенными методами - по selectionEnd - не можем этого сделать, потому что у них в каждом поле ввода эти свойства сохраняются. Придётся искать другие методы. В сыязи с этим вопрс - как у них определить, в каком поле ввода находится курсор?
Добавлено @ 03:33 Вот для Оперы 8+ решение по выбору выделенного текста есть - document.selection.createRange().text . Причём кривоватое: оно существует только в поях ввода, а вне их - getSelection(). |
|||
|
||||
12345c |
|
|||
Круглый Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Когда грузишь страницу с УРЛом через адресную строку после локальной страницы, а затем пытаешься работать с AJAX, IE6 (SP2) выдаёт "доступ запрещён". Если же по загруженному сайту сделаешь хотя бы 1 переход, ошибки с AJAX не будет. Проявляется только во вновь открытом окне. Если перейти на другой сайт и снова загрузить страницу с AJAX, ошибки не будет (история браузера не равна 1).
Такой эффект - не на всех компьютерах. Может, с прокси-настройками связано. В наблюдавшемся случае, например, локальный сервер со сраницей AJAX был настроен на порт 85, а на другом, с портом 80 - всё нормально. ------------------------------- Сгенерированный код не ищется по Ctrl-F в IE6 (SP2) (!!). Или ищет не все и вообще, странно себя ведёт - стр. http://js2.ru/files/js-man3.htm . В "других" ничего подобного не наблюдается. В то же время, другой пример с малым количеством генерируемого текста, но с моногчисленными вставками (все даты и имена автора генерируются) - http://js2.ru/files/article-DOM.htm - показывает, что генерированные фрагменты прекрасно ищутся. Следовательно, придётся узнать, при каких условиях поиск в IE начинает ломаться. Это сообщение отредактировал(а) 12345c - 3.3.2008, 14:05 -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
skyboy |
|
|||
неОпытный Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 10 Всего: 260 |
вот такой вот код.
Firefox честно заявляет "adding event listener", IE - "attaching event", a Opera - "adding event listener"... НО! В Опере не работает. Если же в условии проверять сначала на attachEvent, то работает и в Опере. Получется, что свойство addEventListener есть, но не работает. И в то же время наличествует attachEvent. Это бага или моя ошибка? Opera 8.54. |
|||
|
||||
y3u |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: нет Всего: 13 |
могу ошибаться - лень ставить оперу, нужно попробовать вместо
вдруг поможет, имхо, опера не всегда адекватный браузер -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
||||||
|
|||||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
skyboy, третьим параметром ты указываешь capturing режим, т.е. твое событие отработает на проходе от документа к event.target, это ты так специально? Потому как attachEvent capturing не поддерживает вообще, т.е. получаеться у тебя один алгоритм будет работать в корне по разному на разных браузерах.
Отсюда: если не знаем что есть capturing mode, ставь третий параметр в false. y3u, new function() выполняет совсем не то что ты думаешь Создаёться функция-конструктор, от которой создаёться новый обьект через new (конструктор отрабатывает), затем сам конструктор выбрасываеться, а обьект (это не функция) отдаёться как обработчик события, бразуедр должен кинуть исключение в этом случае. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
skyboy |
|
|||
неОпытный Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 10 Всего: 260 |
Sardar, да. В самом деле - забыл потереть. Просто это часть документа, приеденная к минимальному при нерабочести размеру. Однако не могу понять, каким макаром перехват события предками мешает закрепить обработчик за элементом.
|
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Opera... как много в этом слове Попробуй на Opera 9, если и баг, то наверное пофиксили. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |