摘要/详细信息HTML5元素具有糟糕的浏览器支持。因此,我构建了a non-jQuery fallback使其能够在不受支持的浏览器(IE和Edge)中运行。此后备使用element.removeAttribute,但我对该命令的浏览器支持感到怀疑。我无法在网上找到确切的答案。我已经尝试过caniuse.com和MDN web docs,但是他们没有明确的答案。
我知道它可以在我的(更新的)Firefox版本中使用。有人有更多信息吗?
答案 0 :(得分:1)
此方法在不同的浏览器中无法一致工作。至少是BROKEN on MS Edge,在撰写本文时,MDN,W3schools或caniuse都没有提到它的损坏。
基本上,该方法在删除selected
或hidden
之类的boolean attributes时将失败。以下内容将在Edge上失败:
someDiv.removeAttribute("hidden");
解决方法是立即将属性设置为“ false”。
someDiv.setAttribute("hidden", "false"); // "thanks" for the nonsense, MS
someDiv.removeAttribute("hidden");
这不是布尔属性应该如何工作的,而是Edge要求的方式。鉴于Microsoft即将淘汰Edge,转而使用基于Chromium的替代方法,我们可以预期此bug不会得到修复,并且解决方法会使我们的代码混乱多年。