向元素添加新样式会导致错误?

我正在尝试向对象添加新样式,但出现此错误:


NoModificationAllowedError:不允许对此文档进行修改


代码:


var button = document.getElementById("button");

var buttonComputedStyles = getComputedStyle(button);


buttonComputedStyles.setProperty("animation", targetAnimation); // error here

是否无法对计算出的样式声明进行编辑?


添加样式的推荐位置是什么?


 button.style.setProperty("animation", value);

更新:

好的,@jmargolisvt 链接的文档说:


返回的样式是一个实时的 CSSStyleDeclaration 对象,它会在元素的样式更改时自动更新。


“返回的样式是一个活的对象” - 我不久前读到过,这让我感到困惑。


蝴蝶不菲
浏览 169回答 1
1回答

慕盖茨4494581

从MDN 文档...返回的样式是一个实时的 CSSStyleDeclaration 对象,它会在元素的样式更改时自动更新。返回的对象与从元素的样式属性返回的对象具有相同的 CSSStyleDeclaration 类型。但是,这两个对象有不同的用途:getComputedStyle 中的对象是只读的,应该用于检查元素的样式 — 包括由元素或外部样式表设置的样式。element.style 对象应该用于在该元素上设置样式,或者检查从 JavaScript 操作或全局样式属性直接添加到它的样式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript