Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Корректное детектирование поддержки classList (https://javascript.ru/forum/events/35279-korrektnoe-detektirovanie-podderzhki-classlist.html)

danik.js 06.02.2013 07:16

Корректное детектирование поддержки classList
 
Есть библиотечка для работы с DOM. В ней есть методы addCssClass, removeCssClass, toggleCssClass.

Вопрос, как правильно проверить поддержку classList?

if (classListSupported) {
    exports.addCssClass = function ...
    ...
}
else {
    // old shit
}


Пока что использую поверку typeof DOMTokenList === "function"

Надежно ли это?

UPD:

Оказалось что в IE10 typeof DOMTokenList === "object". Странная хрень. Ну ок, можно изменить сравнение на !== "undefined".

melky 06.02.2013 10:48

Зачем так сложно?
alert("classList" in document.documentElement);

danik.js 06.02.2013 11:02

melky, вроде бы и вполне логичный и напрашивающийся, но почему-то я его не рассмотрел (не знаю почему, возможно просто затупил).

Наверно его и нужно использовать. Он нагляднее и логичнее. Хотя возможно медленней по сравнению с моим. Но разница пренебрежимо мала, это уже надо быть параноиком чтоб делать выбор в этом случае исходя из скорости :)

melky 06.02.2013 16:05

хех.. не стоит проводить муравьиную (мелкую) оптимизацию в тех случаях, которые один раз выполняются :)

danik.js 06.02.2013 20:38

Да, я знаю. Странно, но такое улучшение уже было в библиотечке год назад. И его тогда откатили назад. Странно, неужели есть какие-то серьзеные недостатки у него... Задал вопрос, жду ответа..


Часовой пояс GMT +3, время: 10:26.