gpt4 book ai didi

javascript - CSSStyleDeclaration.prototype 上的defineGetter 和defineSetter

转载 作者:行者123 更新时间:2023-11-28 10:07:59 26 4
gpt4 key购买 nike

我想在所有元素上实现名为 myColor 的假样式。在元素上设置 myColor 样式时,实际的 color 应设置为相同的值。执行此操作的明显方法是在 CSSStyleDeclaration.prototype 上使用 __defineSetter____defineGetter__

这是我的实现 http://jsfiddle.net/ghostoy/jJ2GC/预期的结果是单击SetMyColor按钮后,文本的颜色变为红色并显示“将颜色设置为:红色”。但是,setter 并未按预期调用。

==已更新==

在不同的浏览器(webkit/mozilla/msie)上,它们对非标准样式使用不同的前缀样式名称。例如,Chrome 使用 webkitTransition,Firefox 使用 mozTransition,MSIE 使用 msTransition。不过,我希望使用 msTransition 的应用可以通过 webkitTransition 在 Chrome 上正确运行,无需修改。

我的问题是:

  1. 为什么我的 setter 没有被调用?
  2. 如何实现这种假风格?

最佳答案

您正在处理宿主对象,并且不能保证它们的行为会像 native JavaScript 对象一样。 ECMAScript 规范特别指出,宿主对象不受与 native 对象相同的规则的约束。当前的浏览器实现各不相同,并且旧版本的 IE 根本不提供主机对象的原型(prototype),因此我强烈建议不要尝试这样做。请对 DOM 元素使用包装对象。

关于javascript - CSSStyleDeclaration.prototype 上的defineGetter 和defineSetter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7949721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com