Existe uma maneira de obter uma propriedade scrollHeight (https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollHeight)?
A propriedade em si não seria um grande negócio, você mesmo poderia corrigir isso facilmente no retorno de chamada created
. No entanto, para uma propriedade scrollHeight que retornaria algo útil, jsdom precisaria começar a fazer o layout que está (pelo menos) muuuuito longe, se quisermos começar a fazê-lo.
Eu só queria usar scrollHeight para verificar se há um estouro dentro de um div. Provavelmente terei que olhar para PhantomJS / SlimerJS em vez disso. Obrigado pela resposta.
Existe alguma maneira de zombar disso? Eu tentei isso:
Object.defineProperties(window.HTMLElement.prototype, {
scrollHeight: {
get() {
return this._scrollHeight || 0;
},
set(val) {
this._scrollHeight = val;
}
}
});
E obteve o erro: Cannot redefine property: scrollHeight
@leepowellcouk Parece que você se esqueceu de adicionar configurable: true
à sua configuração. Experimente, por exemplo:
Object.defineProperty(HTMLElement.prototype, "scrollHeight", {
configurable: true,
get: function() {
return this._scrollHeight || 0;
},
set(val) {
this._scrollHeight = val;
}
});
Comentários muito úteis
@leepowellcouk Parece que você se esqueceu de adicionar
configurable: true
à sua configuração. Experimente, por exemplo: