¿Blog en blanco? Solución al problema con IE tras instalar los comentarios anidados | Oloblogger Es posible que desde que instalaste los nuevos comentarios anidados, tu blog tenga problemas al intentar verlo con Internet Explorer. Los ...

22 de enero de 2012

¿Blog en blanco? Solución al problema con IE tras instalar los comentarios anidados

Es posible que desde que instalaste los nuevos comentarios anidados, tu blog tenga problemas al intentar verlo con Internet Explorer.

Los síntomas son una pantalla congelada que no responde a ninguna acción del ratón y que incluso llega a quedarse totalmente en blanco. Si te ocurre eso, aquí tienes una forma de arreglar el problema mientras Blogger no lo hace y así poder mantener los nuevos comentarios.


Dentro del JavaScript del nuevo sistema (threaded_comment_js), existe una primera llamada que lleva un atributo defer. Esto hace que el navegador retrase (difiera) la ejecución del script hasta que la página se haya cargado. Por algún motivo, parece que este atributo es el causante del problema en Internet Explorer y quizás también, el origen de otros problemas, cosa sobre la que voy a solicitar vuestra ayuda al final de la entrada.

La solución rápida es cambiar el atributo defer por otro quizás no tan eficaz para la carga del resto de la página, pero algo mejor que la alternativa de hacer la carga normal. Este sería async. Aquí podéis obtener más información sobre los modos de carga de un script: normal, defer y async.


Para realizar ese cambio nos vamos a Plantilla ► Editar HTML ► Expandir Plantillas de artilugios y allí buscamos esta línea.

<script defer='defer' expr:src='data:post.commentSrc' type='text/javascript'/>

Luego tenemos simplemente que cambiar los dos defer que vemos por sendos async, quedando de esta otra manera:

<script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>


Desde que he hecho este cambio, no he observado ninguna anomalía adicional en mi blog y en Internet Explorer ya funciona mi página tan mal como siempre ;)


Y aquí es dónde requiero vuestra ayuda. Necesitaría saber si otros problemas como que no funcione el botón Responder con scriptaculous, la incompatibilidad con los gadgets oficiales de Twitter, que en Firefox el foco se vaya al formulario de comentarios al acceder a un post y otros asuntos similares derivados de la activación de los comentarios anidados se solucionan también con este cambio o tenemos que seguir buscando soluciones mientras Blogger no se de por enterado de estos problemas y ponga algún remedio

El mérito de la idea es de Simple Blogger Tutorials y nosotros sólo la hemos traducido y explicado a nuestra manera.


Actualización:
El tema de la incompatibilidad con scriptaculous también se soluciona con este truco si utilizamos además el cargador de librerías en lugar de la llamada directa.

Tras varias comprobaciones adicionales no puedo garantizar que funcione esto último. Para el problema de IE sigue valiendo lo explicado en el post, pero seguimos sin poder simultanear comentarios anidados y scriptaculous. También parece que hay problemas con Motools, así como con ciertos gadgets de Twitter.

No obstante dejo el código del cargador por si a alguno le solucionara, por casualidad, el problema.


<script src='http://www.google.com/jsapi' type='text/javascript'/>
<script type='text/javascript'>
google.load(&quot;prototype&quot;, &quot;1&quot;);
window.JSON = {
parse: function (st) { return st.evalJSON(); },
stringify: function(obj) { return Object.toJSON(obj); }
};
google.load(&quot;scriptaculous&quot;, &quot;1&quot;);
</script>

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

51 comentarios :

  1. Oloman, te estaré eternamente agradecido por los siglos de los siglos... Llevaba yo dándole vueltas a los malditos comentarios desde que sucedió el evento de marras, pero no había manera de que en IE se vieran los anidados debajo de la entrada, así que tuve que elegir la opción de ventana emergente. Sin embargo, con Google Chrome se veían estupendamente cualquiera que fuera la opción elegida (¿qué raro, verdad?).

    Tras leer tus entradas al respecto pensé que era tonto porque no veía la forma de solucionarlo, pero vas hoy y me das la llave.

    Respecto a tu solicitud de ayuda, lamento no poder decir nada, pues hace poco hice limpieza en mi blog para darle mayor claridad, y prácticamente no tengo ningún añadido.

    Un fuerte abrazo de tu seguro servidor.

    ResponderEliminar
    Respuestas
    1. Bien, entiendo que ahora sí te funciona. Eso es lo que necesito comprobar.

      Eliminar
  2. Hola Oloman.
    A mí me abre pestaña en blanco cuando pincho en los desplegables famosos, cuando clico en alguna entrada me redirecciona al final de los comentarios del post... por si te sirve de algo, ahí queda.
    Un saludo.

    ResponderEliminar
    Respuestas
    1. Ya, esos eran parte de los problemas que existen, pero ¿probaste si el primero se te soluciona con esto? Para lo de FF y el foco en los comentarios no tengo pistas todavía.

      Eliminar
  3. Hola Oloman.

    Antes que nada, agradecer toda tu ayuda y referencias durante estos últimos días para tunear y configurar el nuevo sistema de comentarios de Blogger.

    Personalmente hace tiempo vengo dándole vueltas a cambiar Prototype+Scriptaculous por jQuery, pues hasta el día de hoy he tenido problemas en implementar esta nueva funcionalidad, además de otras razones.

    Probé la solución de cambiar defer por async y si funcionó para el problema de IE, pero no para el problema del foco en Firefox y menos que funcione con Prototype+Scriptaculous.

    Sin embargo, partiendo de la idea inicial brindada amablemente por ti empecé a hacer pruebas para solucionar esos dos problemas y lo pude solucionar.

    Si la idea del defer o del async es retrasar de alguna manera la ejecución del script, ¿por qué no ponerlo al final de la página?

    Así lo hice, primero comenté los scripts en su ubiación inicial para que no se ejecutaran, y luego justo antes de </body> pegué el script:

    <script type='text/javascript'>
    window.onload=function(){
    if(!document.getElementById || !document.createElement){return;}
    var nuevoScript = document.createElement('script');
    nuevoScript.type = 'text/javascript';
    nuevoScript.src = 'http://www.blogblog.com/dynamicviews/acacef8b5f7a566b/js/comments.js';
    document.getElementsByTagName('head')[0].appendChild(nuevoScript);
    }
    </script>

    (Construído con la ayuda de JMiur en esta entrada)

    Con eso, el problema con Prototype+Scriptaculous desaparece y el nuevo sistema funciona con esas librerías, y adicionalmente, no se si sea impresión mia, las entradas del blog también cargan mas rápido.

    El problema del foco persiste, pero al menos ya se solucionan 2 de 3 problemas. ;)

    Gracias por la chispa divina, ahora me pondré a arreglar los estilos CSS para implementarlo definitivamente.

    ResponderEliminar
    Respuestas
    1. Aclaro, dada mi redacción en el comentario, que este script si puede ser colocado al final de la página (no siempre se puede, depende del uso), pues allí no tendrá problemas en su ejecución.

      Eliminar
    2. A mí con el cambio del async y usando el cargador de scriptaculous, se me resolvió el problema con este último. Ahora vuelvo a tener instalada esa librería sin problemas.

      Tu idea me parece muy buena, pero lo que no sé es si llegaste a probar lo otro, que parece en un principio algo más sencillo y no necesitas anular del todo el script original. Basta con cambiar el atributo comentado y cargar scriptaculous de otra manera.

      Por otra parte, he hecho la prueba con lo tuyo y parece que el script de comentarios es de esas cosas que Blogger no te deja modificar.

      Verás... He comentado el script y a continuación, antes de cambiar nada más, pruebo a ver si desaparecen los comentarios ¡y los jodidos siguen saliendo! No he seguido porque si realmente no se anula el script, no podemos estar seguros que eso último que hiciste es realmente lo que soluciona el asunto o de alguna manera (extraña) lo que hace es recuperar el js original que nunca se llega a borrar en realidad.

      Una aclaración por si no estoy haciendo lo mismo ¿qué es exactamente lo que encerraste entre comentarios?

      Eliminar
    3. Si, realicé la prueba cambiando el atributo defer y cargando Prototype+Scriptáculos tal como lo mencionas aca (de hecho hace un buen tiempo que los cargo así) y seguía sin funcionar.

      La prueba que hiciste, y sus resultados, me parecen muy extraños, a priori pensaría que tal vez es que el script está cacheado en el navegador para la ejecución de la página.

      Lo que comenté fue la carga del primer script que aparece en el includable threaded_comment_js que dice así:

      <script defer='defer' expr:src='data:post.commentSrc' type='text/javascript'/>

      Y luego ese mismo script fue el que cargué al final de la página.

      Voy por algo de tomar porque tanto código me está mareando. :)

      Eliminar
    4. Borré caché porque pensé eso mismo y también comenté por una parte esa llamada y en otra prueba, todo el contenido del script. No sé. Efectivamente, esto es un mareo :S

      Eliminar
  4. muchas gracias al fin pude solucionar el problema con internet explorer y los nuevos comentarios en blogge muchas gracias saludos

    ResponderEliminar
    Respuestas
    1. Interesa saber si usas gadgets de Twitter y si estos ahora no interfieren.

      Eliminar
  5. Muchas gracias, son cosas a las que uno no da importancia. Hasta que lee alguna entrada, donde se indica el problema y de pronto caes en la cuenta que algunos lectores usan IE (pobrecitos) y les complicas la vida, sin querer.

    ResponderEliminar
    Respuestas
    1. Sí, nos pasa mucho. Lo de IE lo descubrí por comentarios ajenos porque lo cierto es que yo no me había dado cuenta.

      Eliminar
  6. Todavía no hice los cambios en mi plantilla debido a que son varios y lleva su tiempo por eso mi pregunta es ¿la suscripción al comentario es ahora algo automático??
    Lo digo, porque a raíz de implementar el nuevo sistema el enlace que teníamos justo en la parte inferior del formulario ya no está.

    ResponderEliminar
    Respuestas
    1. No dije nada, aquí si lo veo ;)

      Eliminar
    2. :D Sigo esperando paisana. Como verás cumplí mi palabra y no te he vuelto a decir nada, pero tengo que aprovecharme de que has pasado por aquí ;)

      Eliminar
  7. Otro de los problemas de incompatibilidad que tiene este sistema de comentarios es con Mootools, sucede lo mismo que con Scriptaculous.

    ResponderEliminar
    Respuestas
    1. ¿Probaste a hacer los dos cambios (async + cargador) para ver si se arregla también lo de esa librería, Potro?

      Eliminar
    2. Sí, bueno, lo de async, en los blogs que he hecho la prueba, me soluciona lo del blog en blanco, pero el link de "Responder" me sigue sin funcionar en IE.
      La librería de Scriptaculous al igual que Felipe siempre la he cargado así, pero al menos para mí eso no lo soluciona.
      Lo de Mootools supongo que se tendría que probar igual una forma distinta de cargar esa librería, o aplicar un parche para que no tenga conflicto con el script de los comentarios.
      En fin, a seguir probando, al menos la solución que propones de async permite que cargue el blog en ese navegador, lo cual para mí ya es de mucha ayuda :)

      Eliminar
    3. Y tanto... Con diferencia era el problema más grave, porque una cosa es que haya que usar el formulario como hasta ahora y otra que no se vea la página en absoluto.

      Pues entonces mi gozo en un pozo si os sigue dando problemas porque en mi caso si me funciona el responder ¿Puedes probar mi página en IE no sea que tenga que ver con los ajustes del navegador propios de cada uno? Yo uso IE8.
      ...
      Antes de aceptar el comentario he probado en tu blog y efectivamente allí no me funciona, pero por favor, prueba tú en el mío con IE.

      Eliminar
    4. Pues el tuyo funciona bien, he ingresado desde IE8 e IE9, en ambos se puede usar el enlace de Responder sin problema alguno. Así que asumo que el conflicto debe estar en algún script de mi blog, pero bueno, como dije antes, al menos ya se muestra completo el blog, que era lo que mayormente me preocupaba.

      Eliminar
    5. Lo actualicé en el post y un comentario general al final de estos: Definitivamente, este truco no soluciona la interferencia con los scripts. Otro día será...

      Eliminar
  8. Me gusta este sistema de comentarios, y debo hacer algunos cambios porque mi plantilla es modificada. Gracias a las indicaciones que he leído aquí y en otros blogs, tengo claro lo que hay que modificar, pero prefiero esperar, hasta que se solucione lo del foco de los navegadores que se van al final de los comentarios, lo he visto en Internet explorer y Firefox, ese detalle me parece molesto para los lectores, especialmente cuando los comentarios pasan de 100 en algunas entradas, que suelen ser las mas visitadas. En los grupos de Google vi un problema que se presenta en los comentarios anidados cuando se utiliza un widget-twitter de comentarios.

    ResponderEliminar
    Respuestas
    1. Sí, Roudy. Lo de que no funcione el botón de Responder con Scriptaculous, parece que se soluciona con esto. Lo de la página en blanco en IE, también. Y ya comentaba Felipe en #3 que sólo faltaba lo del foco en FF.

      Y tengo dudas sobre si lo de esta entrada soluciona lo de los gadgets de Twitter.

      Eliminar
  9. Uff, problemas hay muchos...

    Dices que lo probaste ¿verdad?, lo voy a ver, sabes que el sábado veía esta publicación que mencionas, y no me detuve a probarla, ya que lo que buscaba era la solución al problema en donde al querer ver un artículo (página individual), ya sea usando el enlace del título del post, o el de "leer más", te dirige al fondo de la página (al último comentario) en Firefox, Internet Explorer, y Opera.

    Blogger se esmeró para que con este nuevo sistema se fomente la participación, lo que sucede querrá decir: ¿comentas o comentas? jajaja...

    Bueno, ya han reportado el problema, de hecho también dejé un comentario y nada:

    http://www.google.com/support/forum/p/blogger/thread?tid=0a61beda634a2537&hl=en

    Ojalá lo resuelva Blogger, o si sabes algo de esto, avisas ;)

    ResponderEliminar
    Respuestas
    1. Sí. No sólo esta probado, sino que ahora mismo está así en mi plantilla. Avisaré si me entero de lo de Firefox, no te preocupes ;)

      Eliminar
  10. Hola amigo, vengo a hacerte una consulta: una amiga me dice que los enlaces que coloco en mi blog, "tapan" mi página,abriéndose en la misma pestaña. He visto que hay una manera de hacerlo con este código que indicas en una entrada:...(aquí puse el código)..........................................
    Pero, al querer implementarlo , no me lleva a ningún lado.Dice NoFound (o algo así) ¿No está permitido ?¿Lo hago mal? Quisiera que me enseñes cómo hacerlo, y si puedo colocarlo en algunos enlaces. Gracias. Un abrazo.
    Oh,oh...cuando pongo el código que vos usaste , no puedo publicar mi comentario. Tuve que borrarlo.Algo pasa entonces...

    ResponderEliminar
    Respuestas
    1. No entiendo el problema. Si quieres poner un código aquí y que no te de error, primero transfórmalo con esto:

      Convertir HTML en texto plano

      Eliminar
    2. Así quedó el código: <a href=” enlace”target=”_blank”> nombre del enlace</a>
      Como no entiendo mucho sobre el tema, tal vez con esto puedas comprenderme.Gracias, y disculpa la molestia.

      Eliminar
  11. Aquí me tienes ;) La verdad es que no me importa prescindir del gadget, así es que tal cual se queda. No utilizo ni IE ni Firefox. Hace tiempo que uso Google, trabajo con Mac y lo voy alternando con Safari.
    Besos

    ResponderEliminar
    Respuestas
    1. O sea, que te tienen sin cuidado estos problemas porque no te afectan :D

      Eliminar
    2. ¡Claro que me importan hombre! que no me afecten no significa que no los lea con mucha atención, que siempre se aprende algo de ti ;)

      Eliminar
  12. Oye Oloman el boton responder sigue sin funcionar en internet explorer

    ResponderEliminar
    Respuestas
    1. ¿Bajo que condiciones? Es decir, ahora mismo lo he probado en mi blog que tiene esta modificación y si funciona (IE8). No sé si quieres decir que en el tuyo no funciona o es otra versión de IE.

      Eliminar
  13. Definitivamente, tanto de la forma que explico yo como la que comenta Felipe en #3, se soluciona el tema de IE y la página en blanco, pero no lo de la incompatibilidad con Scriptaculous.

    ResponderEliminar
  14. Saludos Oloman:

    Hace unos días hice el cambio y solucioné el problema con Internet Explorer. Pero sólo comentó para hacerte saber que los gadgets de twitter (El de Favoritos y el de Listas) si los pongo en el blog (los probé por separado) no me funciona la opción de responder.

    Me explicó: Sale la opción pero si tengo cualquiera de esos dos gadgets de twitter puestos no funcionan. :)

    ResponderEliminar
    Respuestas
    1. Vale, gracias. Ya queda claro que este truco soluciona lo de IE pero no las interferencias con otros scripts, incluidos los de los gadgets Twitter.

      Eliminar
  15. Oloman Auxilio!!! tengo un problema gigante!!! mis posts viejos no se ven, a que se debe esto?
    Checalo en mi blog y me dices si conoces alguna solucion :(

    www.paradojante.blogspot.com

    ResponderEliminar
    Respuestas
    1. ¿Cómo de antiguos? Yo fui unas cuantas páginas atras (Emtradas Antiguas) y no observé ningún problema...

      Eliminar
    2. Oh, te escribí desde la cuenta google de una amiga no me di cuenta..
      mira esta entrada por ejemplo, o algunas otras, veras que no aparecen :(

      http://paradojante.blogspot.com/2012/01/comprueban-que-los-hongos-magicos.html

      Saludos

      Eliminar
    3. Pues no tengo ni idea de qué puede provocar eso. Bueno, por probar se me ocurren un par de cosas, pero sin ninguna garantía y sólo por si acaso. La primera es que edites esos posts desde la pestaña HTML (no desde la de Redactar) y compruebes si tienen algún elemento de código que pueda estar interpretándose mal o provocando eso. También puedes ver dos o tres de años por si aprecias alguna otra cosa coincidente y que no esté en los posts que sí salen.

      La otra es más difícil de comprobar y es que busques si tienes alguna condición mal puesta que anula algunos posts.

      Y ya que miré me di cuenta de que no es accesible tu buscador. Añade a esta clase un z-index:

      #CustomSearch1 {
      z-index: 10;
      (y el resto que ya tienes)

      Eliminar
    4. he descubierto el problema, pero no se como solucionarlo.
      Te invito a comentar en cualquiera de los post que SI puedes ver, (los que tienen 0 comentarios) luego de comentar, YA NO PODREAS VER EL POST!! :(

      Alguna idea de porque me pasa esto? es en varios navegadores! (lo probe en chrome y firefox)

      Gracias Oloman

      Eliminar
    5. Por un amigo se desde hace un par de días que esto ocurre: invisibilidad para posts con comentarios. Pero él hizo la prueba y le ocurre igual con comentarios nuevos que antiguos, por lo que debe ser otra cosa el origen del problema. Estamos en ello Paradojante, pero esto parece complicado. De momento cierra los comentarios para que no te desaparezcan los posts, ya que no tener comentarios es menos grave que no tener nada.

      Eliminar
    6. Paradojante, prueba a buscar en tu plantilla el includable que comienza con <b:includable id='comment-form' var='post'> y sustitúyelo entero por este otro.

      Eliminar
    7. FUNCIONA!!!! Siempre me salvas la vida! :D Muchas Gracias Oloman!

      Eliminar
  16. Oloman parece que blogger solucinó lo de la págian en blanco en Internet explorer, utilicé dos blogs de prueba que tienen los comentarios anidados, utilicé internet explorer 9 y la página no se quedó en blanco como anteriormente si lo hacía. Son plantillas nuevas, sin modificaciones, ni códigos añadidos. En uno utilicé la plantilla Mínima y en otro una plantilla de diseño. Saludos.

    ResponderEliminar
    Respuestas
    1. Lo acabo de comprobar en una plantilla "virgen" que tengo para estas cosas y el cambio que han hecho ha sido precisamente este, cambiar defer por async. Increíble que tengamos que ser nosotros los que solucionemos las cosas antes que ellos. ¿Podrías comprobar si en esas plantillas que comentas aparece como te digo?

      Eliminar
    2. Si Oloman en ambas plantillas aparece exactamente el mismo código:
      <script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>
      Ahora falta ver como solucionan lo de los 200 comentarios, ví tu post sobre eso, y el foco al final de los comentarios, vi lo publicado en Vagabundia, falta ver que esas sean las soluciones que apliquen, les van a tener que pagar por derechos de autor, ese es el tema de moda.

      Eliminar
    3. Jajaja... No creo que nos paguen nada, pero resulta entretenido investigar y descubrir cómo solucionar estos problemas. Lo malo es cuando te das contra una pared y no encuentras la manera.
      Lo de los 200 me han confirmado que funciona, así que sólo falta lo del foco. Gracias Roudy.

      Eliminar
  17. Hola, Oloman, pues yo he hecho todos los cambios, he seguido las instrucciones una y otra vez y desde que puse la ventana incrustada se me bloquea en IE y da un error, y he tirado la toalla. Yo no lo uso pero algún lector sí y me lo ha dicho. Si le pudieras echar un vistazo te lo agradecería.

    Por otra parte, comentarte, me pasé a la ventana incrustada porque la emergente dejó de repente de tener la posibilidad de suscribirse a los comentarios por correo electrónico. Eso no hay posibilidad de volverlo a poner en la ventana de comentarios? Gracias y saludos.

    ResponderEliminar
    Respuestas
    1. Hubo un cambio importante en el código de los comentarios que solucionó todo. Es posible que tras tus modificaciones no se te actualizara. Creo que lo mejor es que restaures esa parte. Aquí tienes el código actual: http://www.compartidisimo.com/2012/02/no-funciona-el-enlace-de-responder-de.html

      Eliminar