Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法防止在DOMNode上设置样式属性?_Javascript_Css - Fatal编程技术网

Javascript 有没有办法防止在DOMNode上设置样式属性?

Javascript 有没有办法防止在DOMNode上设置样式属性?,javascript,css,Javascript,Css,假设我的组件有一个DOMNode(像一样简单),另一个组件也可以控制它 有没有一种方法可以防止另一个组件通过JS设置样式属性 例如,我已经设置了domNode.style.color=“blue”,我可以阻止某人在同一domNode上设置内联样式color 如果这是CSS,我可以控制特异性,但不确定如何通过JS实现 (我仅限于使用ES5) 感谢您的帮助 不,没有办法,如果你想确保没有人能破坏你的风格,唯一的办法就是使用!css中的重要标志 #mydiv { color: black!impor

假设我的组件有一个DOMNode(像
一样简单),另一个组件也可以控制它

有没有一种方法可以防止另一个组件通过JS设置样式属性

例如,我已经设置了
domNode.style.color=“blue”
,我可以阻止某人在同一
domNode
上设置内联样式
color

如果这是CSS,我可以控制特异性,但不确定如何通过JS实现

(我仅限于使用ES5)


感谢您的帮助

不,没有办法,如果你想确保没有人能破坏你的风格,唯一的办法就是使用
!css中的重要标志

#mydiv {
 color: black!important; /* color will be always black */
}

不,没有办法,如果你想确保没有人能破坏你的风格,唯一的办法就是使用
!css中的重要标志

#mydiv {
 color: black!important; /* color will be always black */
}

没有办法阻止在JavaScript中更改DOM节点的内联CSS。然而,我想出了一个解决办法

  • 在不希望再次更改元素时,在元素上设置一个
    data-
  • 然后,当另一个组件想要更改颜色属性时,让它检查您设置的值是否存在,如果存在,则中止样式更改

  • 没有办法阻止在JavaScript中更改DOM节点的内联CSS。然而,我想出了一个解决办法

  • 在不希望再次更改元素时,在元素上设置一个
    data-
  • 然后,当另一个组件想要更改颜色属性时,让它检查您设置的值是否存在,如果存在,则中止样式更改

  • 我仍然可以使用JavaScript覆盖它:
    domNode.style.color=“blue!important”…我仍然可以使用JavaScript覆盖它:
    domNode.style.color=“blue!important”…不,不是直接的。ShadowDOM将是一种从“其他东西”封装组件的方法。您可能可以用它做一些详细的工作,但我怀疑它是否值得。不,不是直接的。阴影DOM将是一种从“其他东西”封装组件的方法。您可能可以用它做一些详细的工作,但我怀疑它是否值得。或者您无法编辑其他组件的代码?或者您无法编辑其他组件的代码?