Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

88
Vistas
DIV scrollHeight cambia después de actualizar?

Tengo un sistema de chat casero que escribí para una aplicación web. Originalmente, los chats mostraban los mensajes más recientes en la parte superior, por lo que el usuario no necesitaba desplazarse hacia abajo cada vez para ver el chat más reciente. Esto funcionó bien, pero luego aprendí (en Stackoverflow) el buen truco para usar JS para desplazar el DIV hacia abajo:

 function J_scroll2bottom() { var objDiv = document.getElementById("chat-content-div"); objDiv.scrollTop = objDiv.scrollHeight; }

El área del cuadro de chat está dentro de un IFRAME que contiene el DIV de desplazamiento al que se llama desde el script de chat principal. Este script IFRAME se actualiza cada 20 segundos. Esto funciona muy bien en la llamada de página inicial de Safari, Chrome y Firefox, pero el problema es que cuando el contenido del div se actualiza después de que transcurran los primeros 20 segundos, el contenido DIV de Safari tiene 63 píxeles apagados y no registrará la verdadera altura de desplazamiento. de 1270 píxeles más para el contenido del DIV y ahora registra 1207. Esto deja exactamente una fila de chat oculta debajo de la parte inferior del DIV. Todavía puede desplazarse manualmente el resto del camino, pero lo que me confunde es por qué Safari cambia la altura de desplazamiento del DIV después de la actualización. El contenido del chat en el DIV mismo para la prueba es estático, por lo que el contenido del DIV no cambia entre actualizaciones. Esto no sucede en Chrome o Firefox.

¿Hay alguna otra forma de forzar el desplazamiento en Safari hasta el final? Es extraño que si hay contenido adicional en el DIV, al que puedo desplazarme manualmente, ¿por qué Safari no puede ver su altura actual después de la actualización?

NOTA: Tomé una instantánea de la fuente de la carga inicial y actualicé el código de carga de la página para ver si de alguna manera el código estaba cambiando. Son exactamente lo mismo.

¿Alguna idea? ¿Quizás este es un error conocido en Safari?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda