Tengo algunos problemas para recuperar el captador y el definidor de la propiedad de value de un área de textarea en navegadores más antiguos, como Firefox 4 y Chromium 30.
En pocas palabras, estoy tratando de ejecutar un código cada vez que otra persona actualiza textarea el value de un área de texto, así:
textarea.value="some value"; De acuerdo con información como https://stackoverflow.com/a/58585971 y https://stackoverflow.com/a/55033939 , la única forma confiable parece ser esta: definir un nuevo getter y textarea para la propiedad de value del área de texto, con el setter que contiene el código personalizado. Pero, antes de eso, recupere el getter y setter originales y reutilícelos para que se conserve la funcionalidad original.
Estoy recuperando el descriptor (que contiene getter y setter) así:
var desc=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value");o
desc=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(textarea),"value");o
desc=Object.getOwnPropertyDescriptor(textarea.constructor.prototype,"value"); /* Risky */o
desc=Object.getOwnPropertyDescriptor(textarea.__proto__,"value"); /* Obsolete */ Todos estos recuperan el descriptor de value perfectamente en cualquier navegador moderno, incluido Internet Explorer, pero no en navegadores más antiguos, como Firefox 4 y Chromium 30 (aunque admiten todas las propiedades y métodos anteriores). Están regresando undefined . En esos, HTMLTextAreaElement.prototype no tiene una propiedad de value y, sin embargo, ¡el área de textarea real los tiene!
¿Cómo implementaron esos navegadores la propiedad de value , si no con getter y setter? O, ¿cómo recuperarlos?