Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 9 de 9

Tema: duda propiedad DOM inner HTML

  1. #1
    Me va gustando esto... Habitante
    Fecha de Ingreso
    11 abr, 15
    Mensajes
    141
    Poder de Reputación
    5

    duda propiedad DOM inner HTML

    Hola tengo una duda. En la web de mozilla cuando se habla de la propiedad DOM innerHTML, dice lo siguiente:

    https://developer.mozilla.org/en-US/...ment/innerHTML

    Old implementations may not all implement it exactly the same way. For example, when text is entered into a text input, Internet Explorer changes the value attribute of the input's innerHTML property but Gecko browsers do not.

    En español más o menos según las traducciones que he visto dice esto:

    Esta propiedad fue inicialmente implementada por navegadores web, y luego especificada por el WHATWG y el W3C en HTML5. Implementaciones antiguas no la implementarán exactamente igual. Por ejemplo, cuando el texto es ingresado en una caja de texto(text input), Internet Explorer cambiará el valor de la propiedad innerHTML del elemento text input, mientras que los navegadores Gecko no lo hacen.

    Voy a poner dos ejemplos y veréis que en el primero la propiedad innerHTML no devuelve nada de la caja de texto(text input) y el segundo, el de la caja de texto multilinea (textarea) . Tiene lógica pensar que este si devuelve, ya que tiene contenido entre sus etiquetas, cosa que la caja de texto(text input) no, ya que no tiene etiqueta de cierre(pensé que devolvía el valor del atribute value, pero no).

    ¿La explicación en la web de mozilla esta mal, la traducción al español? porque parece que si por lo que veo



    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento sin título</title>
    <script>
    function cambia(){
    txt = document.getElementById("txt");
    alert(txt.innerHTML);
    }
    /*
    La cadena "<p>primer parrafo hijo de div id="txt"</p><p>segundo parrafo hijo de id="txt" txt</p>" se muestra en un alert.
    */

    </script>
    </head>
    <body>
    <div>
    <p>primer parrafo hijo de div id="txt"</p>
    <p>segundo parrafo hijo de id="txt" txt</p>
    </div>
    <input id="txt" name="textfield" type="text" value="prueba">
    <input type="button" onClick="cambia()" value="aprieta">

    </body>
    </html>

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento sin título</title>
    <script>
    function cambia(){
    txt = document.getElementById("txt");
    alert(txt.innerHTML);
    }
    /*
    La cadena "<p>primer parrafo hijo de div id="txt"</p><p>segundo parrafo hijo de id="txt" txt</p>" se muestra en un alert.
    */

    </script>
    </head>
    <body>
    <div>
    <p>primer parrafo hijo de div id="txt"</p>
    <p>segundo parrafo hijo de id="txt" txt</p>
    </div>
    <input name="textfield" type="text" value="prueba">
    <input type="button" onClick="cambia()" value="aprieta">
    <textarea id="txt">holaa amigo</textarea>

    </body>
    </html>

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,066
    Poder de Reputación
    21
    Hola,

    La traducción está bien, pero como habla de navegadores antiguos (IE 6 o anterior, supongo) no podrás reproducir el comportamiento mencionado, el cual supongo que habrá sido corregido por las versiones actuales de IE. Ten en cuenta, además, que sólo se está comparando IE con Gecko, que es el motor (de layout--diseño o dibujo) de Firefox y no se mencionan otras implementaciones (que podrían ser iguales a IE, o sea, seguir el mismo comportamiento).

  3. #3
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,066
    Poder de Reputación
    21
    Me faltó agregar el siguiente enlace: https://en.m.wikipedia.org/wiki/List_of_web_browsers

    Ahí está la lista de los navegadores y los motores que estos usan.

  4. #4
    Me va gustando esto... Habitante
    Fecha de Ingreso
    11 abr, 15
    Mensajes
    141
    Poder de Reputación
    5
    Creo que no has comprendido lo que quiero decirte(o me falto explicarlo algo mejor). Por eso puse que creo que la explicación de esta propiedad está mal, la español (creo que esta), la inglesa (si puedes traducirlo), o la dos.

    Mira lo que te marco en negrita en el español:
    Por ejemplo, cuando el texto es ingresado en una caja de texto (text input), Internet Explorer cambiará el valor de la propiedad innerHTML del elemento text input, mientras que los navegadores Gecko no lo hacen.

    Como te puse, hice varias pruebas, ni IE, Chrome, Mozilla devuelve nada de una caja de texto input type="text" (no tiene etiqueta de cierre me imagino que será por eso. Pensé entonces que devolvía el valor del atribute value, pero tampoco). La caja de texto multilinea (textarea) en Internet Explorer SI cambiará el valor de la propiedad innerHTML del elemento multilinea (textarea), mientras que los navegadores Gecko NO lo hacen.

    Conclusión mía:

    En el resumen de la propiedad innerHTML en español estaría mal, porque no se cumple en un elemento text input, sino en un elemento multilinea (textarea).
    Y en el resumen en ingles pues no sé, eso ya a alguien que maneje bien el inglés ya que no se si dice lo mismo que la española o no.

  5. #5
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,066
    Poder de Reputación
    21
    Entendí bien la primera vez, jejeje.

    Respecto a la traducción, está bien (milagro xD); dicen lo mismo al menos.

    Como te puse, hice varias pruebas, ni IE, Chrome, Mozilla devuelve nada de una caja de texto input type="text" (no tiene etiqueta de cierre me imagino que será por eso. Pensé entonces que devolvía el valor del atribute value, pero tampoco). La caja de texto multilinea (textarea) en Internet Explorer SI cambiará el valor de la propiedad innerHTML del elemento multilinea (textarea), mientras que los navegadores Gecko NO lo hacen.
    Eso dependerá de la versión que utilices de Internet Explorer (asumo que se refieren a una versión anterior a la . El valor de los elementos de un form se debe extraer con value, no con innerHTML o innerText.

    Aquí hay un ejemplo funcional: https://jsfiddle.net/skaparate/hbeL2228/8/. Solo tienes que escribir en el textarea e input. Si te fijas, inicialmente el innerHTML de un textarea sí tiene un valor, pero este no se actualiza, no así el value.

  6. #6
    Me va gustando esto... Habitante
    Fecha de Ingreso
    11 abr, 15
    Mensajes
    141
    Poder de Reputación
    5
    Toda la versión de internet, incluido Edge, al escribir en el elemento textarea cualquier palabra, la propiedad innerHTML cambia automáticamente. En Gecko NO(se queda el valor inicial).
    El input tal como te dije NUNCA DEVUELVE NADA en ningún navegador ni versión, cambia su value, pero ya está, solo eso, no el valor de la propiedad innerHTML, que no almacena nada.
    Con esto entonces vuelvo a lo mismo, esa explicación de esta propiedad en mozilla está mal, la español seguro, la inglesa (si dice los mismo que la español (confirmaste que sí) está mal también.

    Resumen Mozilla español:

    Por ejemplo, cuando el texto es ingresado en una caja de texto(text input), Internet Explorer cambiará el valor de la propiedad innerHTML del elemento input text, mientras que los navegadores Gecko no lo hacen.

    Internet Explorer NO CAMBIARA el valor de la propiedad innerHTML ni Gecko(en el ejemplo tuyo, mío se ve claro) ya que como te dije la propiedad innerHTML del elemento input text NO DEVUELVE NADA. Por eso la explicación está mal y debería decir:

    Cuando el texto es ingresado en una caja de texto multilinea (textarea), Internet Explorer cambiará el valor de la propiedad innerHTML del elemento textarea, mientras que los navegadores Gecko no lo hacen.

  7. #7
    Me va gustando esto... Habitante
    Fecha de Ingreso
    11 abr, 15
    Mensajes
    141
    Poder de Reputación
    5
    Pd: tanto el elemento input con el atributo type valor text, como el elemento textarea, representan un campo de entrada de texto, difieren de texto corto y texto largo. En la descripción en Mozilla español dice; cuando el texto es ingresado en una caja de texto, especificaron entre paréntesis como aclaración (text input), y allí está la equivocación, ya que es (textarea) y es esto lo que deberían haber puesto.

  8. #8
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,066
    Poder de Reputación
    21
    Si dices que has probado todas las versiones de IE, entonces está mal. La página puede ser modificada por cualquier persona, así que podrías corregirla si quieres :). Aunque primero deberías iniciar un reporte de bug en Github para que así alguien te explique si la documentación está bien o mal (aparte de lo expuesto aquí, que tal vez yo no he explicado bien o no he entendido).

  9. #9
    Me va gustando esto... Habitante
    Fecha de Ingreso
    11 abr, 15
    Mensajes
    141
    Poder de Reputación
    5
    Sí, yo suelo colaborar en mozilla  así que habrá que modificar eso para que no allá lugar a confusiones.

Temas Similares

  1. duda propiedad DOM inner HTML
    Por isaacaaron en el foro Foro General
    Respuestas: 0
    Último Mensaje: 17/12/2017, 21:31
  2. duda con la propiedad background-repeat
    Por taffy en el foro Curso Paso a Paso con Html-Kit.
    Respuestas: 2
    Último Mensaje: 01/07/2008, 08:19
  3. Duda en "Aplicando la propiedad margin"
    Por Foley en el foro Webs con Capas o DIVS
    Respuestas: 3
    Último Mensaje: 21/08/2007, 15:40

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •