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

时间:2018-10-02 15:00:14

标签: javascript html cross-browser

摘要/详细信息HTML5元素具有糟糕的浏览器支持。因此,我构建了a non-jQuery fallback使其能够在不受支持的浏览器(IE和Edge)中运行。此后备使用element.removeAttribute,但我对该命令的浏览器支持感到怀疑。我无法在网上找到确切的答案。我已经尝试过caniuse.comMDN web docs,但是他们没有明确的答案。

我知道它可以在我的(更新的)Firefox版本中使用。有人有更多信息吗?

1 个答案:

答案 0 :(得分:1)

此方法在不同的浏览器中无法一致工作。至少是BROKEN on MS Edge,在撰写本文时,MDN,W3schools或caniuse都没有提到它的损坏。

基本上,该方法在删除selectedhidden之类的boolean attributes时将失败。以下内容将在Edge上失败:

someDiv.removeAttribute("hidden");

解决方法是立即将属性设置为“ false”。

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

这不是布尔属性应该如何工作的,而是Edge要求的方式。鉴于Microsoft即将淘汰Edge,转而使用基于Chromium的替代方法,我们可以预期此bug不会得到修复,并且解决方法会使我们的代码混乱多年。