Underc0de

Programación Web => Front-end => Mensaje iniciado por: JaAViEr en Noviembre 25, 2014, 05:56:26 AM

Título: [Código-Javascript] Palabras más utilizadas en un Sitio Web
Publicado por: JaAViEr en Noviembre 25, 2014, 05:56:26 AM
FUENTE ORIGINAL : http://codigo.ga/javascript/javascriptpalabras-mas-utilizadas-en-sitio-web/


Hola, muy buen día.

El código Javascript que publicaré más abajo se encarga de capturar todas las palabras dentro de algún elemento, clase o id. Nos creará un pequeño formulario "flotante", en el cuál nos pedirá "Longitud", "Veces", "Elemento" (Filtros).

(http://codigo.ga/wp-content/uploads/2014/11/flotante-1024x345.png) (http://codigo.ga/wp-content/uploads/2014/11/flotante.png)

¿ Que es eso de "Filtros"?
Los dos primeros son una especie de filtros, así mostramos resultados más específicos.
Una vez rellenes los campos, el programa te dará una salida con una tabla como esta:

Ejemplo basado en el portal de noticias http://actualidad.rt.com
(http://codigo.ga/wp-content/uploads/2014/11/it-works-1024x409.png) (http://codigo.ga/wp-content/uploads/2014/11/it-works.png)
Sin más, el código:
Código (javascript) [Seleccionar]
var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-latest.js';
document.getElementsByTagName('head')[0].appendChild(script);

var times_form;
var element_form;
var length_form;
var l_temp;
var dict = {};
var new_dict = {};
var splited = "";
var counter;
var get_data = function (text, length) {

splited = text.split(" ");

  for ( var a in splited ) {

if( dict[splited[a]] ) {

      splited[a] = splited[a].toLowerCase();
dict[splited[a]] = dict[splited[a]] + 1;
   
} else {
   
      if ( splited[a].length >= length ) {

      splited[a] = splited[a].toLowerCase();
        dict[splited[a]] = 1;
   
    }
   
    }
 
}
 
};

var extract = function (element, length, times) {

  new_dict = {};
  dict = {};
 
  $(element).each( function () {
 
  get_data($(this).text(), length);
 
});

  for ( var c in dict ) {
 
    if ( dict[c] >= times ) {
   
      new_dict[c] = dict[c];
   
    }
 
  } 

  var output = "<table border='1'>"+
      "<thead>"+
      "<th>Palabra</th>"+
      "<th>Longitud</th>"+
      "<th>Apariciones</th>"+
      "</thead>"+
      "<tbody>";
  counter = 0;
  for( var l in new_dict ) {

    counter++;
    l_temp = l.replace("<", "&lt;");
    l_temp = l_temp.replace(">", "&gt;");
    output = output + "<tr>"+
      "<td>" + l_temp + "</td><td>" + l.length + "</td><td>" + new_dict[l] + "</td>"+
      "</tr>";
   
  }
  output = output + "</tbody></table>";
 
  show_results(output);
  return new_dict;

};

var find = function (word) {

  if ( new_dict[word] ) {
 
  show_results(String(new_dict[word]));
 
  } else {
 
  show_results("Word Not found");
 
  }

};

var search = function () {

  length_form = $("input[name=length_craw]").val();
  times_form = $("input[name=times_craw]").val();
element_form = $("input[name=element_craw]").val();
  if( length_form.length > 0 && times_form.length > 0 && element_form.length > 0 ) {
 
    extract(element_form, length_form, times_form);
 
  }

};

var show_form = function () {

  $("<div class='show_words' style='border-radius:5px;box-shadow:0px 0px 10px #000;overflow:scroll;font-family:Trebuchet MS;width:auto;height:6cm;background-color:#fff;border:1px solid;position:fixed;top:12%;left:2%;padding:5px;z-index:30;'>"+
    "<center><h2>Palabras más utilizadas</h2></center><input style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;' name='length_craw' placeholder='Longitud'>&nbsp;<input style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;' name='times_craw' placeholder='Veces'><br/>"+
    "<input style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;' name='element_craw' placeholder='Elemento'>&nbsp;<button onclick='search()' style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;'>¡Buscar!</button>&nbsp;<button onclick='$(\".show_words\").fadeOut();' style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;'>Cerrar</button>"+
    "<div class='words_content'></div></div>").appendTo("body");

};

var show_results = function (content) {

  $(".words_content").html("Total:" + counter + "<br/>" + content);

};

show_form();


FUENTE ORIGINAL : http://codigo.ga/javascript/javascriptpalabras-mas-utilizadas-en-sitio-web/



Sin más que agregar... gracias por leer :-)

Saludos, Javier.