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 例如 selected
或 hidden
时,该方法将失败。以下将在 Edge 上失败:
someDiv.removeAttribute("hidden");
解决方法是在删除属性之前立即将该属性设置为 "false"。
someDiv.setAttribute("hidden", "false"); // "thanks" for the nonsense, MS
someDiv.removeAttribute("hidden");
这不是布尔属性的工作方式,但这是 Edge 的要求。鉴于 Microsoft 即将放弃 Edge 以支持基于 Chromium 的替代方案,我们可以预期此错误将保持未修复状态,并且解决方法会使我们的代码混乱多年。
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 例如 selected
或 hidden
时,该方法将失败。以下将在 Edge 上失败:
someDiv.removeAttribute("hidden");
解决方法是在删除属性之前立即将该属性设置为 "false"。
someDiv.setAttribute("hidden", "false"); // "thanks" for the nonsense, MS
someDiv.removeAttribute("hidden");
这不是布尔属性的工作方式,但这是 Edge 的要求。鉴于 Microsoft 即将放弃 Edge 以支持基于 Chromium 的替代方案,我们可以预期此错误将保持未修复状态,并且解决方法会使我们的代码混乱多年。