Какая поддержка браузера для element.removeAttribute?

Элемент HTML5 summary / details ужасно поддерживается браузером. Поэтому я создал резервный вариант, отличный от jQuery, чтобы он работал в неподдерживаемых браузерах (IE и Edge). Этот резервный вариант использует element.removeAttribute, но я сомневаюсь в поддержке этой команды браузером. Я не могу найти однозначного ответа в Интернете. Я пробовал caniuse.com и Веб-документы MDN, но у них нет четких ответов.

Я знаю, что это работает в моей (обновленной) версии Firefox. У кого-нибудь есть дополнительная информация?

Это ТОЧНАЯ ссылка, которую я отправил в своем вопросе. Он содержит в основном вопросительные знаки.

JoostS 02.10.2018 17:02

Это означает, что поддержка неизвестна или нестабильна. W3Schools противоречит и заявляет, что все современные брокеры его поддерживают. w3schools.com/jsref/met_element_removeattribute.asp

daddygames 02.10.2018 17:07

@daddygames - «Мы не знаем» не противоречит «Кто-то говорит, что они знают»

Quentin 02.10.2018 17:08

@Quentin Я просто поддерживаю ОП, подтверждая, что разные источники имеют разную информацию по теме. Однако я бы склонился к тому, чтобы MDN был более точным, что означает, что поддержка не гарантируется, и вы должны тестировать определенные браузеры / версии, если можете.

daddygames 02.10.2018 17:10

Я думаю, что это такая же старая часть спецификации, что поддержка столь же хороша, как универсальная, и никто не удосужился протестировать ее и обновить вики MDN.

Quentin 02.10.2018 17:13

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

JoostS 02.10.2018 17:13

@JoostS Я снял свой голос "против" по этому вопросу. Однако я не верю, что вы получите лучший ответ, чем упомянутые документы. MDN обычно является наиболее актуальным онлайн-документом, доступным для общественности.

daddygames 02.10.2018 17:20

Вы можете добавить это в качестве ответа? Это несколько неудовлетворительно, но я готов с этим согласиться, поскольку просто прошу «больше информации».

JoostS 02.10.2018 17:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
480
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Этот метод не работает последовательно в разных браузерах. По крайней мере, это СЛОМАН на MS Edge, и на момент написания MDN, W3schools или caniuse не упоминали о его поломке.

Обычно метод не работает при удалении логические атрибуты, например selected или hidden. На Edge произойдет сбой следующего:

someDiv.removeAttribute("hidden");

Обходной путь - установить для атрибута значение «false» непосредственно перед его удалением.

someDiv.setAttribute("hidden", "false"); // "thanks" for the nonsense, MS
someDiv.removeAttribute("hidden");

Не так должны работать логические атрибуты, но именно так этого требует Edge. Учитывая, что Microsoft собирается отказаться от Edge в пользу альтернативы на основе Chromium, мы можем ожидать, что эта ошибка останется не исправленной, а обходной путь будет загромождать наш код на долгие годы.

Спасибо, JoostS! С тех пор я поднял флаг об этой проблеме как в caniuse, так и в MDN.

brennanyoung 12.03.2019 16:47

Другие вопросы по теме