element.removeAttribute 的浏览器支持什么?

What is the browser support for element.removeAttribute?

summary/details HTML5 元素的浏览器支持很糟糕。因此我建造了a non-jQuery fallback to make it work in non-supported browsers (IE and Edge). This fallback uses element.removeAttribute, but I am in doubt about the browser support of this command. I cannot find a definitive answer online. I have tried caniuse.com and MDN web docs,但他们没有明确的答案。

我知道它适用于我的(更新的)Firefox 版本。有人有更多信息吗?

此方法无法跨浏览器一致地工作。它至少是 BROKEN on MS Edge,并且在撰写本文时 MDN、W3schools 或 caniuse 都没有提到它的缺陷。

基本上,当删除 boolean attributes 例如 selectedhidden 时,该方法将失败。以下将在 Edge 上失败:

someDiv.removeAttribute("hidden");

解决方法是在删除属性之前立即将该属性设置为 "false"。

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

这不是布尔属性的工作方式,但这是 Edge 的要求。鉴于 Microsoft 即将放弃 Edge 以支持基于 Chromium 的替代方案,我们可以预期此错误将保持未修复状态,并且解决方法会使我们的代码混乱多年。