代码之家  ›  专栏  ›  技术社区  ›  Mr. Hugo

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

  •  -1
  • Mr. Hugo  · 技术社区  · 7 年前

    summary/details html5元素具有糟糕的浏览器支持。所以我建造了 a non-jQuery fallback 使其在不受支持的浏览器(IE和EDGE)中工作。此回退使用element.removeattribute,但我怀疑此命令的浏览器支持。我在网上找不到确切的答案。我试过了 caniuse.com MDN web docs 但是他们没有明确的答案。

    我知道它在我的(更新的)火狐版本中有效。有人知道更多信息吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   E_net4 Tunn    7 年前

    这种方法在浏览器中不能始终如一地工作。它是 BROKEN on MS Edge 至少,MDN、W3Schools或Caniuse在写作时没有提到它的破碎性。

    基本上,移除时该方法将失败 boolean attributes selected hidden . 以下将在边缘上失败:

    someDiv.removeAttribute("hidden");
    

    解决方法是在移除属性之前立即将其设置为“false”。

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

    这不是布尔属性的工作方式,而是边缘需要它的工作方式。考虑到微软即将放弃使用基于铬的替代方案,我们可以预期这个bug将保持不变,并且多年来解决方案会使我们的代码变得杂乱无章。