Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Anidar comentarios en Meneame.net (UserScript) (See related posts)

Anida los comentarios usando el número de comentario (#XX) que los usuarios de Meneame utilizan para referirse a otros comentarios


// ==UserScript==
// @name          Meneame.net: anidar comentarios
// @description   Anida comentarios en meneame.net
// @include       http://meneame.net/story/*
// ==/UserScript==
(function() {
var cl = document.getElementById("comments-list"); //cl = lista de comentarios
var l = null; //l = cada elemento hijo de cl
for(var i in cl.childNodes)
{
 l = cl.childNodes.item(i);
 if(l && (l.tagName) && (l.tagName.toUpperCase() == "LI")) //ignora lo que no sean elementos LI
 {
  var d = l.firstChild; //d = el div que contiene cada el texto del comentario
  var nc = parseInt(d.id.slice(8)); //nc = numero de comentario
  var r = d.firstChild.nextSibling.nextSibling.innerHTML.match(/#[0-9]+/g); //r = lista de comentarios referenciados
  var nr = 0; //nr = numero del comentario referenciado
  var anidado = false;
  for(var j in r) // j = cada referencia
  {
   nr = parseInt(r[j].slice(1));
   if((anidado = (nr > 0) && (nc > nr))) //si el numero del comentario es mayor que el referenciado...
   {
    var lr = document.getElementById("comment-" + nr).parentNode; //lr = el elemento LI referenciado
    if(lr.lastChild.name != "anidados")
    {
     var a = document.createElement("ul");
     a.name = "anidados";
     a.style.borderLeft = "1px dotted #aaaaaa";
     lr.appendChild(a);
    }
    lr.lastChild.appendChild(l.cloneNode(true));
    try{cl.removeChild(l);} catch(e){}
   }
  }
 }
}
})();

You need to create an account or log in to post comments to this site.


Click here to browse all 5059 code snippets

Related Posts