Jsdom: Un moyen d'obtenir la propriété scrollHeight ?

Créé le 2 févr. 2015  ·  4Commentaires  ·  Source: jsdom/jsdom

Existe-t-il un moyen d'obtenir une propriété scrollHeight (https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollHeight) ?

feature layout

Commentaire le plus utile

@leepowellcouk On dirait que vous avez oublié d'ajouter configurable: true à votre configuration. Essayez par exemple :

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

Tous les 4 commentaires

La propriété elle-même ne serait pas un gros problème, vous pourriez même le corriger assez facilement vous-même dans le rappel created . Cependant, pour une propriété scrollHeight qui renverrait quelque chose d'utile, jsdom devrait commencer à faire la mise en page, ce qui est (au moins) très éloigné, si nous voulons même commencer à le faire.

Je voulais juste utiliser scrollHeight pour vérifier s'il y a un débordement dans un div. Je vais probablement devoir plutôt regarder PhantomJS/SlimerJS. Merci d'avoir répondu.

Y a-t-il quand même de s'en moquer ? J'ai essayé ceci :

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

Et j'ai l'erreur : Cannot redefine property: scrollHeight

@leepowellcouk On dirait que vous avez oublié d'ajouter configurable: true à votre configuration. Essayez par exemple :

Object.defineProperty(HTMLElement.prototype, "scrollHeight", {
  configurable: true,
  get: function() {
    return this._scrollHeight || 0;
  },
  set(val) {
    this._scrollHeight = val;
  }
});
Cette page vous a été utile?
0 / 5 - 0 notes