Jsdom: Есть ли способ получить свойство scrollHeight?

Созданный на 2 февр. 2015  ·  4Комментарии  ·  Источник: jsdom/jsdom

Есть ли способ получить свойство scrollHeight (https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollHeight)?

feature layout

Самый полезный комментарий

@leepowellcouk Похоже, вы забыли добавить configurable: true в свой конфиг. Попробуйте, например:

Object.defineProperty(HTMLElement.prototype, "scrollHeight", {
  configurable: true,
  get: function() {
    return this._scrollHeight || 0;
  },
  set(val) {
    this._scrollHeight = val;
  }
});

Все 4 Комментарий

Само свойство не будет иметь большого значения, вы даже можете довольно легко исправить это самостоятельно с помощью обратного вызова created . Однако для свойства scrollHeight, которое могло бы возвращать что-то полезное, jsdom нужно было бы начать выполнять макетирование, которое (по крайней мере) очень далеко, если мы даже хотим начать это делать.

Я просто хотел использовать scrollHeight, чтобы проверить, есть ли переполнение внутри div. Возможно, мне придется вместо этого взглянуть на PhantomJS / SlimerJS. Спасибо за ответ.

Есть ли способ поиздеваться над этим? Я пробовал это:

Object.defineProperties(window.HTMLElement.prototype, {
  scrollHeight: {
    get() {
      return this._scrollHeight || 0;
    },
    set(val) {
      this._scrollHeight = val;
    }
  }
});

И получил ошибку: Cannot redefine property: scrollHeight

@leepowellcouk Похоже, вы забыли добавить configurable: true в свой конфиг. Попробуйте, например:

Object.defineProperty(HTMLElement.prototype, "scrollHeight", {
  configurable: true,
  get: function() {
    return this._scrollHeight || 0;
  },
  set(val) {
    this._scrollHeight = val;
  }
});
Была ли эта страница полезной?
0 / 5 - 0 рейтинги