首页 > 解决方案 > 如何获取 CSSStyleDeclaration.backgroundImage 设置描述符

问题描述

我正在尝试覆盖 javascript 中某些样式属性的设置器。

这是我正在做的一个例子。

const setDescriptor = Object.getOwnPropertyDescriptor(CSSStyleDeclaration.prototype, 'backgroundImage').set;
Object.defineProperty(CSSStyleDeclaration.prototype, 'backgroundImage', {
    set: function (value) {
        const newValue = // Some sort of mutation to value

        setDescriptor.call(this, newValue);
    },
});

当试图在我的浏览器中运行它时,我收到以下错误:

未捕获的类型错误:无法读取未定义的属性(读取“设置”)

我知道该界面没有对样式属性的任何引用。
但是,当从 CSSStyleRule.style 访问 CSSStyleDeclaration 的实例时,属性确实存在。

该实例何时填充?如何覆盖所有新旧实例的属性设置器?

标签: javascriptbrowser

解决方案


推荐阅读