Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Багография браузеров. Баги,фичи IE, Opera, Firefox, Недоработки или нестандартное поведение 
:(
    Опции темы
AKS
Дата 29.1.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(ksnk @  29.1.2008,  20:43 Найти цитируемый пост)
Да'с... Не баг'c... Точнее не баг броузеров...

Почему же "не баг броузеров"? Можно, как раз, "предъявить" претензии FF/Опера.
Вот так только IE бросит ошибку:
Код

function test (){
 // just a test
}

var X=new test();

Array.prototype.toString.call(X); // -> error

А должны все:
Цитата

15.4.4.2 Array.prototype.toString ( )
...
The toString function is not generic; it throws a TypeError exception if its this value is not an Array object.
Therefore, it cannot be transferred to other kinds of objects for use as a method.


PM MAIL   Вверх
ksnk
Дата 29.1.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Еще про массив. Чисто теоретически - как отличить такое от "настоящего" массива?
Код

function test (){
 // just a test
}
test.prototype=new Array();
var X=new test();
X.pop(1); // Магия!  Не трогать, иначе спугнем FF  :-)
var Y = new Array();
alert([typeof(X), typeof(Y),Y instanceof Array, X instanceof Array, Y.hasOwnProperty('pop'), X.hasOwnProperty('pop'), Y.hasOwnProperty('shift'), X.hasOwnProperty('shift'), Y.hasOwnProperty('length'), X.hasOwnProperty('length')]);

Только IE утверждает, что у X не будет собственного свойства length, в то время как все остальные не находят отличий по всем параметрам.



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
AKS
Дата 30.1.2008, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(ksnk @  29.1.2008,  21:32 Найти цитируемый пост)
Чисто теоретически - как отличить такое от "настоящего" массива?

Было дело прошлым летом - Евгений Петров показал простенький, но хитрый примерчик, суть которого сводится примерно к следующему:
Код

Object.prototype.toString.call(X).match(/\s\w+/); // применительно к вашему мутанту X

По идее, любой браузер, претендующий на соответствие ECMAScript Language Specification Edition 3, должен выдать нужный результат. Но мир, в котором мы живем, не идеален - не все браузеры могут оказаться таковыми. Сразу понятно, что, к примеру, IE 5.0 - один из их числа. Сейчас не помню точно, но мне кажется, что, тестируя этот вариант, я нашел еще какие-то браузеры, которые выдавали не то, что хотелось бы. И тут дело не в методе call (его то можно легко заменить), а в методе toString, работающем не так, как надо...
PM MAIL   Вверх
solenko
Дата 18.2.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



Код

Click anywhere on this page...
<script>
setInterval(function(){
  alert("Triggered with a click, but no click handler.");
}, -1);
</script>

В результате в IE имеем сообщение при клике в любой чати окна.
Источник: John Resig

Это сообщение отредактировал(а) solenko - 18.2.2008, 11:23


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
DenVdmj
Дата 23.1.2009, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 11.6.2007

Репутация: нет
Всего: нет



По поводу описанного выше бага MSIE с addRule, на таком коде: 

Код

<style type="text/css">
</style>
<script>

document.styleSheets[0].addRule('@#$', 'color:red', 0)

</script>


те же симптомы -- ие жрет память со бешеной скоростью, за считанные секунды -- гиг, выбрасывая при этом всех полностью в своп. Жесть, одним словом. 
Я собственно, поиском сюда вышел, ищу как решить проблему. 
Может у кого нибудь есть идеи как перехватить ошибку?


Это сообщение отредактировал(а) DenVdmj - 23.1.2009, 12:57
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1133 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.