Jsdom: рд╕реНрдХреНрд░реЙрд▓рд╣рд╛рдЗрдЯ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдлрд╝рд░ре░ 2015  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jsdom/jsdom

рдХреНрдпрд╛ рд╕реНрдХреНрд░реЙрд▓рд╣рд╛рдЗрдЯ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ (https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollHeight)?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@leepowellcouk рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ configurable: true рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

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

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕рдВрдкрддреНрддрд┐ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реЛрдЧреА, рдЖрдк рдЗрд╕реЗ created рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕реНрд╡рдпрдВ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдкреИрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдХреНрд░реЙрд▓рд╣рд╛рдЗрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд▓реМрдЯрд╛рдПрдЧреА, рдЬреЗрдПрд╕рдбреЙрдо рдХреЛ рд▓реЗрдЖрдЙрдЯрд┐рдВрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ (рдХрдо рд╕реЗ рдХрдо) рдПрдХ рдмрд╣реБрдд рд╣реА рдХрдо рд░рд╛рд╕реНрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рдХрд░рдирд╛ рднреА рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВ рд╕рд┐рд░реНрдл рд╕реНрдХреНрд░реЙрд▓рд╣рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рдбрд┐рд╡ рдХреЗ рдЕрдВрджрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╢рд╛рдпрдж рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп 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 рд░реЗрдЯрд┐рдВрдЧреНрд╕