Firefox / Firefox 10 critical bug — isSameNode

в 20:04, , рубрики: Firefox, метки:

Вкратце: в FF10 перестала работать куча сайтов, скомпилированных старыми версиями GWT. В консоли лезет ошибка isSameNode is not a function.
Пока баг в ФФ не исправили, выкладываю быстрый грязный фикс для вебмастеров:

Подробности под катом.
В спецификации DOM3 была тривиальная функция isSameNode, сравнивающая один html-элемент с другим и возвращающая true, если это один и тот же элемент.
В реальности этой функцией мало кто пользовался… но по каким-то причинам её использует компилятор Google Web Toolkit.
Из спецификации DOM4 функцию убрали за ненадобностью (она дублирует оператор ===).
Господа Jonas Sicking и Ms2ger выпустили и продавили патч, убирающий эту функцию из Firefox 10.
Мотивировка была гениальной:
As one of the editors of DOM4, I can say that it is the intention that features that were removed from the specification are also removed from implementations

Типа, мы же убрали из спецификации — давайте уберем из реализаций. Источник
Всем, кто пишет еще под старые спецификации, предложили обновить свой код. Как будто все сайты в мире поддерживаются в полном соответствии с последними версиями стандартов, ага.
Особая хохма в том, что DOM4 это дело очень и очень далекого будущего. Достаточно сказать, что в IE функцию isSameNode добавили только 9-ой версии браузера.


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js