>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Проблемы с сайтами http://forum.mozilla-russia.org/viewforum.php?id=24 >Грубые ошибки обработки Java-Script http://forum.mozilla-russia.org/viewtopic.php?id=2814 |
Andys > 04-05-2005 20:51:16 |
Заинтересовавшись, установил Firefox 1.0. При работе браузера почти сразу обнаружились грубые ошибки обработки Java-Script. Конструкцию Java-Script: document.forms("nameForm").submit(); отрабатывает прекрасно даже Opera, Firefox 1.0 только так: document.forms['nameForm'].submit(); Такая же document.frames("nameframe").document.forms['formName']; в Firefox 1.0 полностью неработоспособна, в других браузерах (MSIE, Opera) работает прекрасно. ---------------------- Будут ли ошибки устранены в более поздних версиях? И, наверное, следует об этом сообщить разработчикам. |
Yan > 04-05-2005 22:01:00 |
Firefox обрабатывает javascript в соответствии с существующими стандартами. Приведенные Вами примеры написаны не по стандартам, поэтому и не работают. |
Почесал > 04-05-2005 22:33:30 |
Дык там не JavaScript, там нечто другое... В официальной спецификации указаны такие пути обращения к формам как forms.name forms['name']. Никогда не слышал о функциях forms/ frames.. массивы? Функции? Курите мануалы. Msie выдумали, что к формам/фреймам можно обращаться через функцию... Изврат. RTFM. Opera просто для совместимости копирует дурной пример. В JavaScript такого нет. Так что грубые ошибки у Вас в голове, а не у Firefox. |
Unghost > 04-05-2005 22:34:43 |
==> Проблемы с сайтами |
Mash > 04-05-2005 22:48:38 |
gass512 пишет
[humor]Наверное, тот самый Java-Script, о котором спрашивают.[/humor] |
Почесал > 04-05-2005 22:49:23 |
Не, просто зачем изобретать велосипед? |
Andys > 05-05-2005 00:12:16 |
gass512 пишет
С помощью document.frames("nameframe").document.forms['formName']; можно обращаться к форме, находящейся во фрейме или iframe с родительской страницы. ------------------------------------ P.S. Я тут сейчас поэкспериментировал, и выяснилось, что в Firefox обращение к форме во фрейме из parent страницы работает только так: document.getElementById("nameframe").contentWindow.document.forms['formName']; в других браузерах - по всякому работает, без разницы. Стандарты все время меняются, и вряд-ли веб-разработчики станут все сайты переделывать. Поэтому другие браузеры и тянут за собой и наследие прошлых стандартов, и сегодняшних W3C. А пользователям Firefox (кстати, в остальном мне браузер даже очень понравился, Так что это не ==> проблемы с сайтами, а ==> проблемы с браузером. |
Psilon > 05-05-2005 00:20:33 |
Andys |
Infant > 05-05-2005 00:23:29 |
На это счёт есть хорошая поговорка: Горбатого могила исправит. Хотя правильнее было бы не горбатого, а криворукого web-"дизайнера". |
Swappp > 05-05-2005 00:32:57 |
Andys
Ну с Java-Script Firefox действительно не знаком, он работает только с JavaScript И прежде чем делать такие заявления неплохобы узнать кто создатель JavaScript и кто его сейчас развивает, первые это Netscape, а вторые The Mozilla Organization. http://www.mozilla.org/js/ |
Andys > 05-05-2005 01:50:11 |
Swappp пишет
Тем более, тогда должно работать. |
Psilon > 05-05-2005 01:54:08 |
Andys |
Viper > 05-05-2005 02:01:33 |
Andys http://www.mozilla.org/js/language/ посмотри здесь, а потом говори должно или не должно работать. Твои примеры - выдумка M$, а Опера для совместимости с Ослом их проглатывает. В спецификации этого НЕТ!!! |
Почесал > 05-05-2005 08:36:40 |
Ничего не меняется. Есть JavaScript 1.5 и все. super-puper-mega-var string! Почему такая не работает в Firefox? Я ее придумал, типа поменял стандарт. Но разработчики Firefox меня не слушают... Грубые ошибки в обработке JavaScript! В моем браузере VasjaBrowser 0.1 такая конструкция работает, надо разработчикам сказать, чтобы они исправили ошибку! Так что исправляйте грубые ошибки в своем синтаксисе и/или голове, а не грешите на браузер. |
Andys > 05-05-2005 10:17:23 |
Если речь идет о программе, а браузер ей и является, как вы понимаете, то ситуация //зачем нам прогибаться под изменчивый мир, в данном случае не подходит. Проблема заключается в том, что некоторые вещи, которые с легкостью можно делать, используя на сайтах код Java Script, Firefox не проглатывает, таким образом уменьшаются возможности, предоставленные веб-разработчикам, этим, в общем-то нужным языком программирования. Не все можно выполнить на локальном компьютере с помощью CGI, PHP и т.п. Viper пишет
Все же думаю, что в следующей версии, все будет работать, как и в Opere... и в Осле... А в остальном, браузер хороший: удобный, быстрый, очень дружелюбный. |
Почесал > 05-05-2005 10:58:34 |
С легкостью можно делать что угодно, просто у кого-то руки кривые или квалификации не хватает. Firefox держит JavaScript полноценно, всякая отсебятина от MS к JavaScript отношения не имеет. Неужели это так понять трудно? Это все равно, что кто-нибудь начнет говорить, что в английском языке солнце не sun, а еще и anar... И если ему вполне законно покрутят пальцем у виска, он начнет орать, что возможности английского уменьшаются! Надо, чтобы еще anar было солнце по его прихоти... Любой лингвист, да и просто человек, знающий английский скажет, что в английском языке anar никаким боком к солнцу не стоит (да и вообще такого слова нет). Так же и тот, кто знает JavaScript скажет, что таких конструкций он не предусматривает, это синтаксические ошибки. Бред какой. Есть язык, есть его синтаксис. Все. |
Andys > 05-05-2005 15:06:14 |
Господа веб-программисты, нашел решение проблемы с чего начитается этот топик: если не работоспособна конструкция document.frames['nameframe'].document.forms['formName']; Решается с помощью: z=document.frames?document.frames['nameframe']:document.getElementById("nameframe").contentWindow; --------------------------- то есть, если браузер Firefox, то один и тот же скрипт работает через обращение к форме во фрейме (или в iframe): document.getElementById("nameframe").contentWindow.document.forms['formName']; если другие браузеры, то через document.frames['nameframe'].document.forms['formName']; Может кому пригодится. |
Mash > 05-05-2005 15:13:45 |
Топик начинается вот с этого: document.forms("nameForm") |
Почесал > 05-05-2005 15:38:32 |
Гы, это не Ваших ли сайтов: "Мегасайт Васи Пупкина" с менюхой на JScript? Пока что я вижу, как некоторые кривые сайты исправляются от мелкософтной отсебятины и начинают работать нормально в лисе, типа как www.national-lottery.co.uk или www.zyxel.ru Причем national-lottery.co.uk администрация переделала по первому же письму от пользователей Firefox о том, что они работать не могут, и не стала пальцы гнуть, чтобы они писали разработчикам о том, что те всякую отсебятину от билла гейтса отвергают. |
Andys > 10-05-2005 13:48:05 |
В продолжение разговора о "недостатках" браузера Mozilla_Firefox v.0.9 - v.1.0.3. хочу обратить внимание на то, что при запросе каждой страницы, браузер одновременно запрашивает с сервера файл favicon.ico Посмотрите свои log файлы, чтобы убедиться. Поскольку на большинстве сайтов этой иконки нет, каждый раз генерируется ошибка 404. Поэтому, если пользователь посмотрел на сайте, например, 100 страниц, то сто раз и будет выдана ошибка Not_Found при запросе favicon.ico Это не дело. // |
Почесал > 10-05-2005 13:49:39 |
Почему не дело? Что, не надо запрашивать favicon? Може еще картинки не будем запращивать, контент? Лиса не виновата, что у сайта нет favicon. |
Andys > 10-05-2005 14:19:30 |
gass512 пишет
Если вебмастер решит, что иконка необходима, он вставит в страницу, как например на Яндексе <link rel="SHORTCUT ICON" href="http://img.yandex.ru/i/favicon.ico"> Запрос несуществуюшего файла всегда ведет к ошибке 404. // |
Почесал > 10-05-2005 15:44:23 |
Ну и, тебе-то что от этого, тепло или холодно? |
djet > 10-05-2005 15:56:33 |
Bug 260500 - Browser requests favicon.ico on every page view gass512
Наверное, владельцам сервера не очень приятны такие favicon.ico DDoS-атаки. Кроме того, FF таким образом имитирует поведение IE, что не есть по стандарту. |
Почесал > 10-05-2005 16:06:33 |
На багзилле статус патча поставлен в blocking 1.1 с просьбой осмотреть его. Может в 1.1 будет уже включен |
Почесал > 10-05-2005 16:09:40 |
Да ну фигня. Логом больше, логом меньше. Нормальный рабочий процесс. Места под логи много, они все равно стираются после какого-то времени. Погоду не меняет. |
Mash > 10-05-2005 16:31:24 |
2Andys Вот здесь ваш праведный гнев уже имеет под собой какие-то основания. Я, например, видел случаи, когда из-за незнания этой особенности у людей появлялись совершенно ненужные сессии, о происхождении которых они догадывались не сразу. Насколько я помню, такое поведение пользователь может изменить (about:config, смотреть по фильтру "icon"), но девелоперам от этого не легче. И совсем правильным такое поведение браузера не назовёшь, и совсем неправильным -- тоже. Здесь два момента: |
Andys > 10-05-2005 22:41:39 |
gass512 пишет
Для сервера это бессмысленная лишняя нагрузка (см. djet: DoS-атаки), для тебя или твоего провайдера - бессмысленный трафик (ты каждый раз платишь за загрузку страницы + за загрузку страницы Not_Found). |
Andys > 10-05-2005 22:52:07 |
Mash пишет
Никто из браузеров больше этим не страдает. Можете мне поверить (или - см. лог-файлы). Для разработчиков сайтов, как обычно, предлагаю выход из положения: .htaccess <FilesMatch "\.ico$"> -------------------------------- или так: .htaccess RewriteEngine on Возможны варианты.... // |
djet > 10-05-2005 23:05:23 |
Andys
|
Andys > 10-05-2005 23:33:41 |
djet пишет
Значит, тогда так (все эти "DDoS-атаки" перенаправляем на www.mozilla.org/favicon.ico): <FilesMatch "\.ico$"> djet пишет
Это неправда, файл favicon.ico запрашивается на каждую страницу (см. логи) // |
djet > 10-05-2005 23:37:31 |
Andys
Читай внимательнее. Эта фраза адресована разработчикам. |
Mash > 11-05-2005 01:18:37 |
Andys пишет
localhost/test.html: Opera: Version 8.0, Build 7561, Platform Win32, System Windows NT 5.2. Выделить код Код:127.0.0.2 [02:32:27] "GET /test.html HTTP/1.1" 200 76 127.0.0.2 [02:32:27] "GET /favicon.ico HTTP/1.1" 404 283 IE: 6.0.3790.0 Если не сработало с первого раза, можно поиграться кнопкой "Reload". Ещё можно сходить сюда: Выделить код Код:+++GET 14+++ GET /favicon.ico HTTP/1.1 User-Agent: Mozilla/4.78 (Windows NT 5.2; U; en) Opera 8.0 Host: msdn.microsoft.com +++RESP 14+++ HTTP/1.1 302 Object moved Date: Tue, 10 May 2005 21:15:09 GMT Server: Microsoft-IIS/6.0 Location: http://msdn.microsoft.com/404/default.asp Content-Length: 162 Content-Type: text/html Cache-control: private Что делаю не так? |
Почесал > 11-05-2005 08:52:41 |
|
Digital Mirror > 11-05-2005 12:26:12 |
тоже мне совет...DoSить мозлу.орг..проще favicon.ico на сервере завести, имхо так даже лучше для сайта |
Andys > 11-05-2005 12:43:24 |
По поводу логов. Этот вопрос требует еще дополнительного рассмотрения. Дело в том, что на сайте с помощью записи в .htaccess ErrorDocument 404 http://site.ru/error404.html при ошибке 404 выводится свой обработчик ошибки, загружающий специальную страницу. Так вот, при посещении сайта FF, сервер всегда выдает две страницы (в два раза увеличивая трафик). То есть запрошенную страницу + страницу с ошибкой 404, возникающей при запросе favicon. В access.log действительно и FF и Opera записывают: 127.0.0.1 - - [11/May/2005:12:37:07 +0400] "GET /favicon.ico HTTP/1.1" 404 1820 IE вроде как нет. Кто разберется с этим, прошу написать в этот форум. ---------------------------- Digital Mirror пишет
P.S. Кому может потребуется, еще один вариант, позволяющий с помощью mod_rewrite, выдавать Forbidden при запросе favicon.ico RewriteEngine on // |
djet > 11-05-2005 16:24:45 |
Mash
Спешишь.
|
Mash > 11-05-2005 16:48:47 |
2djet: я привёл код той страницы, которую тестировал, эти тесты можно воспроизвести; здесь же для меня эти "GET" ничего не значат, т.к. я не могу их воспроизвести и проверить, тем более, что даже версии браузеров не приведены. Andys пишет
Во-первых, по-моему я ясно указал, что для IE смотрел error.log. Во-вторых, можно ещё посмотреть реакцию на добавление сайта в закладки (AFAIK, IE5+ будет тянуть иконку вне зависимости от <link/>). В-третьих, да, "этот вопрос требует еще дополнительного рассмотрения"; вот только фразы Andys пишет
там уже не будет, не так ли? |
djet > 11-05-2005 17:16:55 |
Mash |
Mash > 11-05-2005 17:21:32 |
djet пишет
Безумно счастлив. |
Mash > 11-05-2005 17:33:01 |
Хмм... Что интересно, я сейчас уже даже не могу воспроизвести запрос IE, падающий в error.log. А, Б. с ними. Мне просто хотелось разрушить безапелляционность высказывания "больше так никто и никогда и нигде". |
djet > 11-05-2005 17:39:34 |
Mash |
Почесал > 11-05-2005 17:41:45 |
Вот не сказал бы, что фф проигрывает. В О у меня сайты грузятся даже на глаз значительно медленнее, чем в лисе. Gmail в ней у меня открывался секунд 15. Я не знаю, чем это объяснить, но факт. Я бы повесил на него ярлык: самый тормозной браузер в мире, но это все субъективно. |
djet > 11-05-2005 17:47:55 |
gass512 |
Andys > 11-05-2005 19:22:08 |
Mash пишет
Результат дальнейшего анализа ситуации. Да, действительно, Opera тоже запрашивает favicon.ico, но только один раз в начале сессии. 127.0.0.1 - - [11/May/2005:19:05:36 +0400] "GET /favicon.ico HTTP/1.1" 404 FF - на каждую страницу. Если же с помощью записи в .htaccess, как я уже писал, создаем собственный обработчик ошибки, в виде специальной страницы, то в случае с Оперой при отсутствии любого файла, в т.ч. и favicon.ico, эта страница не выдается сервером вообще, а появляется сообщение об ошибке 302 //Found а в access.log Апач пишет 127.0.0.1 - - [11/May/2005:19:03:22 +0400] "GET /favicon.ico HTTP/1.1" 302 Mozilla каждый раз загружает страницу с обработчиком ошибки 404. Отсюда и дополнительный трафик. P.S. IE мне не удалось заставить сделать запрос с записью в error.log P.P.S. По всем остальным показателям FF вроде как выигрывает. В т.ч. и по быстродействию. // |
Mash > 11-05-2005 19:27:11 |
..вроде как.. |
Andys > 11-05-2005 23:55:11 |
Mash пишет
Последняя версия Firefox v.1.1, вышедшая в апреле, по предварительным оценкам, работает еще быстрее. Размер дистрибутива около 13 мБ. |
Viper > 11-05-2005 23:58:34 |
.......................!!!!!!!!!!!!!!!!!! Это как?? FF 1.1 Alpha ещё не вышел и размер дистрибутива 13 Мб... Не помню такого.. |
Mash > 12-05-2005 01:01:19 |
"Предварительные оценки". Ржинимагу. |
Andys > 12-05-2005 11:21:28 |
Andys пишет
Вынужден извиниться. Меня тут ввели в заблуждение "нерадивые", на радостях вкатал на форум. Погорячился. |
Иль > 12-05-2005 11:33:58 |
Нет, это не изврат, это ООП. Изврат было бы не реализовать это. Изврат это слепое клонирование Gecko W3C. Так же изврат забыть, что это чисто мое ИМХО . |
Иль > 12-05-2005 11:38:19 |
Полностью согласен. Psilon, а аватар у вас просто класс! Идейный! Завидую |
Иль > 12-05-2005 11:42:15 |
Ну первое понятно (убогая реализация от которой плакать мало), может еще про открытые исходники NN и последствия этого вспомним. А второе - не понял, объясни. Блин, а я то думал участники основанной в 1961 Ecma... А оказывается вот, кто локомотив двигает и стандарты, всему миру прописывает... Ну раз так, надо мне их срочно попросить научить JS задавать арибут DontEnum свойствам пользовательских объектов, чтоб не нужные в перечисления не попадали, о тож замучился всякие примочки примачивать. Жаль до этого только убогая MS додумалась, но видимо побоялась такого монстра и не реализовала. Ладно, везде умные люди есть. Лучше всем миром творить. |
Andys > 12-05-2005 14:51:47 |
Хочу еще дополнить по поводу favicon.ico Если нужно закрыть favicon.ico все-таки самый оптимальный вариант будет: <Files favicon.ico> |
Snik > 12-05-2005 17:15:08 |
Убогая реализация *JavaScript* как раз имела место быть у IE, пока ее не привели в более-менее приличный вид в версии 6. Кстати, на момент появления JS у Netscape, MSIE только таблицы рисовать учился (версии 2.0). Что касается ECMAScript, то он на основе JavaScript, а не JScript пишется. Причем практика показывает, что сначала появляется новая версия JavaScript (сначала стараниями Sun и Netscape, затем - AOL), а потом его неспешно "стандартизируют" очередной редакцией ECMA-262. |
Иль > 12-05-2005 23:39:09 |
А никто не умоляет заслуг, просто ты наверно забыл от хорошей жизни, какой был JS от NN |
Snik > 13-05-2005 11:15:11 |
Иль |
Иль > 16-05-2005 14:56:31 |
Елки, уже вроде как навязываю. Просто народ так радовался когда JS у криворуких (NN) отобрали. Все, извините, умолк |
Swappp > 16-05-2005 20:45:44 |
Snik
Sun не имеет никакого отношения к JavaScript, кроме разрешения использовать свою tm. |