No funciona el botón\enlace de "Responder" de los comentarios en Blogger



No funciona el botón\enlace de "Responder" de los comentarios en Blogger. Si tienes le problema con tu plantilla aquí te mostramos como solucionar este error.

Si eres de los que está experimentando el error al no poder accionar el “Responder” en los comentarios de Blogger entonces eres de los nuestro ya que al igual que tú nos tocó experimentar este problema que es muy común en plantillas desactualizadas de Blogger. Al tener una plantilla desactualizada no quiere decir que la platilla este mal, sino que la plantilla aun cuenta con el script de "Responder" que no funciona.


Es bien sabido que Google actualiza sus plataformas constantemente y este fue el caso con algunos script. No funciona el enlace de "Responder" que se muestra debajo de cada uno de los comentarios. Este problema solo afecta a los comentarios de Blogger ya que los comentarios de Google+ no presentan este problema.


El problema surge cuando intentamos responder a algún comentario ya hecho en alguna entrada, el botón o enlace de "Responder" se muestra pero no ejecuta ninguna acción. Esto se soluciona remplazando dicho script por uno reciente o nuevo que se ha implementado en las nuevas plantillas de Blogger con ello vamos a solucionar el error al funcionar el botón\enlace de "Responder" de los comentarios anidados en Blogger.


Para dar solución a este problema vamos a sustituir dicho script que no funciona al Responder en los comentarios por uno que ya está actualizado. Con ello podremos componer el "Responder" de los comentarios anidados en las plantillas de Blogger.



Solución al enlace "Responder" en los comentarios de Blogger

  1. Lo primero que tememos que hacer será dirigirnos a la sección de "Tema" y después a "Editar HTML" para acceder al código de nuestra plantilla.
  2. Ahora da clic sobre el código de tu plantilla, después presiona "Ctrl + F" pegar el siguiente código <data:post.commentJso/> y después enter para buscar.
  3. Cuando hayas encontrado la línea de código anterior proceder a eliminar todo el script que contiene esa línea de código, para que te sea más rápido contrae el script dando clic en el número de la línea donde empieza el código del script, después seleccionas y borrar.
  4. Ahora donde borraste el script anterior procede a pegar en tu plantilla el siguiente script que ya está actualizado y el cual debe de funcionar perfectamente. Por ultimo guarda los cambios realizados y visualiza tu blog.
      <script type='text/javascript'>
        (function() {
          var items = <data:post.commentJso/>;
          var msgs = <data:post.commentMsgs/>;
          var config = <data:post.commentConfig/>;
    // <![CDATA[
          var cursor = null;
          if (items && items.length > 0) {
            cursor = parseInt(items[items.length - 1].timestamp) + 1;
          }
          var bodyFromEntry = function(entry) {
            if (entry.gd$extendedProperty) {
              for (var k in entry.gd$extendedProperty) {
                if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {
                  return '<span class="deleted-comment">' + entry.content.$t + '</span>';
                }
              }
            }
            return entry.content.$t;
          }
          var parse = function(data) {
            cursor = null;
            var comments = [];
            if (data && data.feed && data.feed.entry) {
              for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
                var comment = {};
                // comment ID, parsed out of the original id format
                var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);
                comment.id = id ? id[2] : null;
                comment.body = bodyFromEntry(entry);
                comment.timestamp = Date.parse(entry.published.$t) + '';
                if (entry.author && entry.author.constructor === Array) {
                  var auth = entry.author[0];
                  if (auth) {
                    comment.author = {
                      name: (auth.name ? auth.name.$t : undefined),
                      profileUrl: (auth.uri ? auth.uri.$t : undefined),
                      avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)
                    };
                  }
                }
                if (entry.link) {
                  if (entry.link[2]) {
                    comment.link = comment.permalink = entry.link[2].href;
                  }
                  if (entry.link[3]) {
                    var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);
                    if (pid && pid[1]) {
                      comment.parentId = pid[1];
                    }
                  }
                }
                comment.deleteclass = 'item-control blog-admin';
                if (entry.gd$extendedProperty) {
                  for (var k in entry.gd$extendedProperty) {
                    if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {
                      comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;
                    }
                  }
                }
                comments.push(comment);
              }
            }
            return comments;
          };
          var paginator = function(callback) {
            if (hasMore()) {
              var url = config.feed + '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
              if (cursor) {
                url += '&published-min=' + new Date(cursor).toISOString();
              }
              window.bloggercomments = function(data) {
                var parsed = parse(data);
                cursor = parsed.length < 50 ? null
                    : parseInt(parsed[parsed.length - 1].timestamp) + 1
                callback(parsed);
                window.bloggercomments = null;
              }
              url += '&callback=bloggercomments';
              var script = document.createElement('script');
              script.type = 'text/javascript';
              script.src = url;
              document.getElementsByTagName('head')[0].appendChild(script);
            }
          };
          var hasMore = function() {
            return !!cursor;
          };
          var getMeta = function(key, comment) {
            if ('iswriter' == key) {
              var matches = !!comment.author
                  && comment.author.name == config.authorName
                  && comment.author.profileUrl == config.authorUrl;
              return matches ? 'true' : '';
            } else if ('deletelink' == key) {
              return config.baseUri + '/delete-comment.g?blogID='
                   + config.blogId + '&postID=' + comment.id;
            } else if ('deleteclass' == key) {
              return comment.deleteclass;
            }
            return '';
          };
          var replybox = null;
          var replyUrlParts = null;
          var replyParent = undefined;
          var onReply = function(commentId, domId) {
            if (replybox == null) {
              // lazily cache replybox, and adjust to suit this style:
              replybox = document.getElementById('comment-editor');
              if (replybox != null) {
                replybox.height = '250px';
                replybox.style.display = 'block';
                replyUrlParts = replybox.src.split('#');
              }
            }
            if (replybox && (commentId !== replyParent)) {
              document.getElementById(domId).insertBefore(replybox, null);
              replybox.src = replyUrlParts[0]
                  + (commentId ? '&parentID=' + commentId : '')
                  + '#' + replyUrlParts[1];
              replyParent = commentId;
            }
          };
          var hash = (window.location.hash || '#').substring(1);
          var startThread, targetComment;
          if (/^comment-form_/.test(hash)) {
            startThread = hash.substring('comment-form_'.length);
          } else if (/^c[0-9]+$/.test(hash)) {
            targetComment = hash.substring(1);
          }
          // Configure commenting API:
          var configJso = {
            'maxDepth': config.maxThreadDepth
          };
          var provider = {
            'id': config.postId,
            'data': items,
            'loadNext': paginator,
            'hasMore': hasMore,
            'getMeta': getMeta,
            'onReply': onReply,
            'rendered': true,
            'initComment': targetComment,
            'initReplyThread': startThread,
            'config': configJso,
            'messages': msgs
          };
          var render = function() {
            if (window.goog && window.goog.comments) {
              var holder = document.getElementById('comment-holder');
              window.goog.comments.render(holder, provider);
            }
          };
          // render now, or queue to render when library loads:
          if (window.goog && window.goog.comments) {
            render();
          } else {
            window.goog = window.goog || {};
            window.goog.comments = window.goog.comments || {};
            window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];
            window.goog.comments.loadQueue.push(render);
          }
        })();
    // ]]>
      </script>

Si no notas el cambio prueba lo siguiente:

  • Prueba el botón o enlace de "Responder" en alguna entrada de tu blog. Si no notas el cambio entonces borra el historial completo de tu navegador ya que el cache puede estar interfiriendo.
  • Si no quieres borrar el historial entonces puedes abrir el navegador en modo incognito y desde ahí verificar que los cambios hayan surtido efecto.

Realizando los pasos anteriores habrás actualizado el script para que funcione el botón o enlace de "Responder" de los comentarios anidados en Blogger. Ahora solo debes estar al pendiente por si Blogger actualiza este script, aunque para ello pueden pasar varios años.


Si tienes amigos con el mismo problema comparte este tutorial con ellos y también en tus redes sociales ya esto nos ayuda a seguir creciendo y traerte tutoriales de calidad como este, si tienes dudas respecto al tema puedes dejar un comentario.


Espero que este tutorial haya sido de tu agrado y si te sirvió no olvides compartir que nos ayuda mucho. Visita nuestro Canal en Youtube y Suscríbete!. Regalanos un like en la página de Facebook y síguenos en Twitter.

No hay comentarios:

Con la tecnología de Blogger.