Foros del Web » Programando para Internet » Javascript »

tiempo de lectura con errores

Estas en el tema de tiempo de lectura con errores en el foro de Javascript en Foros del Web. hola gente, me podrian ayudar a modificar un codigo que sirve para contar caracteres y sacar el tiempo de lectura, pero he visto que hay ...
  #1 (permalink)  
Antiguo 18/07/2006, 14:28
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
Pregunta tiempo de lectura con errores

hola gente, me podrian ayudar a modificar un codigo que sirve para contar caracteres y sacar el tiempo de lectura, pero he visto que hay un pequeño error y es que en los resultados me da ejemp: 2'78 y como todos sabemos no hay 78 seg me podrian ayudar con esto?
// JavaScript Tiempo de lectura
var resultado
function tiempo_lectura()
{
volanta=document.armar.volanta.value
titulo=document.armar.titulo.value
copete=document.armar.copete.value
epigrafe=document.armar.epigrafe.value
texto=document.armar.E_Texto.value
volanta=quitarEspacios(volanta)
titulo=quitarEspacios(titulo)
copete=quitarEspacios(copete)
epigrafe=quitarEspacios(epigrafe)
texto=quitarEspacios(texto)
total=volanta + titulo + copete + epigrafe + texto
intro=new RegExp(String.fromCharCode(10),"g")
volanta=volanta.replace(intro,"<br>")
titulo=titulo.replace(intro,"<br>")
copete=copete.replace(intro,"<br>")
epigrafe=epigrafe.replace(intro,"<br>")
texto=texto.replace(intro,"<br>")
totalTiempo= tiempoLectura(total)
resultado = "Tiempo estimado de lectura: " + totalTiempo + "<br>" + volanta + "<br>" + titulo + "<br>" + copete + "<br>" + epigrafe + "<br>" + texto
resultado += "<br>Total caracteres: " + total.length
//document.armar.texto.value= texto
document.armar.tiempo.value= totalTiempo
}
//document.getElementById('capa').innerHTML=resultad o
function quitarEspacios(donde)
{
vlr=document.armar.volanta.value
volanta3=donde.split(" ")
valor=""
for (m=0;m<volanta3.length;m++)
{
var valor
if(volanta3[m] == "") {continue
}
else
if (m==volanta3.length-1){valor += volanta3[m]}
else { valor += volanta3[m] + " "}
}
return valor
}
function tiempoLectura(que)
{
tiempo=(que.length/100)/15
tiempo=tiempo.toString()
punto="."
tiempo2=tiempo.replace(punto,"'")
dec=tiempo2.indexOf("'")+3
tiempo2=tiempo2.substring(0,tiempo2.indexOf("'")+3 )
return tiempo2
}
// contador de caracteres
var primeraVez = true;
var primeraVez2 = true;
var primeraVez3 = true;
function limpia(){
if (primeraVez){
document.armar.volanta.value = "";
primeraVez = false;
}
}
function limpia2(){
if (primeraVez2){
document.armar.titulo.value = "";
primeraVez2 = false;
}
}
function limpia3(){
if (primeraVez3){
document.armar.copete.value = "";
primeraVez3 = false;
}
}
function cuenta(){
document.armar.total.value = document.armar.volanta.value.length;
}
function cuenta2(){
document.armar.total2.value = document.armar.titulo.value.length;
}
function cuenta3(){
document.armar.total3.value = document.armar.copete.value.length;
}
espero puedan darme una mano
gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #2 (permalink)  
Antiguo 18/07/2006, 16:20
Avatar de eberrios  
Fecha de Ingreso: agosto-2004
Ubicación: Chile
Mensajes: 145
Antigüedad: 20 años, 3 meses
Puntos: 1
no conosco mucho del tema pero en esta linea
tiempo=(que.length/100)/15

no deberia ser /60

si no es asi wueno se hace lo que c puede

salu2 ;)
  #3 (permalink)  
Antiguo 18/07/2006, 16:23
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
ok lo voy a probar, el tema es que de javascript no le hago a nada
gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #4 (permalink)  
Antiguo 21/07/2006, 09:09
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
me sigue dando el mismo error alguien sabe como solucionar este tema, plisssss
gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #5 (permalink)  
Antiguo 24/07/2006, 08:04
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
alguien que me pueda dar una mano con esto, plis
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #6 (permalink)  
Antiguo 24/07/2006, 10:31
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
suponiendo que todo el proceso fuera correcto (me da fiaca leerlo todo) probá reemplazando la funcion tiempoLectura por:

Cita:
function tiempoLectura(que)
{
tiempo=Math.round(que.length/15)/100;
return tiempo.toString().split(".")[0]+"'"+Math.round(tiempo.toString().split(".")[1]*0.6);
}
saludos
__________________
by Capitán Buscapina
.
  #7 (permalink)  
Antiguo 25/07/2006, 10:56
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
por lo que veo no me hace ningun cambio

remplase esto
function tiempoLectura(que)
{
tiempo=(que.length/100)/15
tiempo=tiempo.toString()
punto="."
tiempo2=tiempo.replace(punto,"'")
dec=tiempo2.indexOf("'")+3
tiempo2=tiempo2.substring(0,tiempo2.indexOf("'")+3 )
return tiempo2
}

por

function tiempoLectura(que)
{
tiempo=Math.round(que.length/15)/100;
return tiempo.toString().split(".")[0]+"'"+Math.round(tiempo.toString().split(".")[1]*0.6);
}
y es como si fuera lo mismo por lo menos no veo que realice ningun cambio me da el mismo resultado
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #8 (permalink)  
Antiguo 26/07/2006, 08:30
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
alguna sugerencia, plis, necesito que alguien me tire una soga con este tema.
gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #9 (permalink)  
Antiguo 27/07/2006, 09:50
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
ayuda plissss no creo que sea muy dificil esto para el que sabe
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #10 (permalink)  
Antiguo 29/07/2006, 07:05
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
no puedo creer que ninguno de los maestros del web no me puedan dar una mano con esto, pero seguire insistiendo porque se que por ahi hay alguien que me puede tirar una soga.
gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #11 (permalink)  
Antiguo 29/07/2006, 11:24
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
Cita:
Iniciado por virla
no puedo creer que ninguno de los maestros del web no me puedan dar una mano con esto
aunque esto no es para mi, y ademas de que creo que la solución que te dí te arroja el tiempo en minutos y segundos, te pongo esta funcion para el tiempo de lectura.

Cita:
<html>
<head>
<script>
function tiempoLectura(){
arg=arguments;
p=0;
for(x=1;x<arg.length;x++){
if(document.getElementById(arg[x])){
p+=document.getElementById(arg[x]).innerHTML.replace(/<[^>]+>/g," ").replace(/\s{2}/g," ").split(" ").length;
}
}
tiempo=p/250;
minutos=parseInt(tiempo);
segundos=parseInt((tiempo.toFixed(2)-minutos)*60);
document.getElementById(arg[0]).innerHTML=minutos+" minuto(s) y "+segundos+" segundos";
}
</script></head>
<body onload="tiempoLectura('aqui','a','b','c','d')">
<p id="a">Un programa de JScript es una colección de instrucciones. Cada instrucción de JScript equivale a una frase completa en español. Las instrucciones de JScript combinan las expresiones de tal forma que éstas realizan una tarea completa.</p>

<p id="b">Una instrucción se compone de una o varias expresiones, palabras claves u operadores (símbolos). Normalmente, cada instrucción se escribe en una sola línea, aunque puede abarcar dos o más líneas. Asimismo, dos o más instrucciones pueden escribirse en la misma línea, aunque deben separarse con un punto y coma. En general, en cada línea nueva comienza una nueva instrucción. Es aconsejable finalizar las instrucciones de una forma explícita. Para ello se utiliza un punto y coma (;), el carácter de terminación de instrucción de JScript. A continuación se incluyen dos ejemplos de instrucciones de JScript.</p>
<p id="c">aPájaro = "Petirrojo"; // Asignar el texto "Petirrojo" a la variable aPájaro
var hoy = nueva Fecha(); // Asignar la fecha actual a la variable hoy
Un grupo de instrucciones de JScript rodeadas por llaves ({}) se llama bloque. Por lo general, las instrucciones agrupadas en un bloque pueden tratarse como una sola instrucción. Esto significa que los bloques pueden utilizarse en la mayor parte de los lugares en los que JScript espera encontrar una instrucción. Las excepciones más notables a esta regla son los encabezados de los bucles for y while. Tenga en cuenta que las instrucciones primitivas incluidas en un bloque finalizan con puntos y coma, pero el bloque no.</p>
<span id="aqui">xxx</span>
</center>
</body>
</html>
se implementa llamando a la funcion con onload en el body (o con cualquier evento) y como parametro se pasan,:
.-el primer parametro es el id del elemento de salida
.- los demas parametros son todos los id de los elementos que contienen el texto en cuestion (puede se 1 o varios).

trabaja con innerHTML por lo que si se quiere obtener/llenar elementos de formularios se tiene que cambiar por value


saludos.
__________________
by Capitán Buscapina
.
  #12 (permalink)  
Antiguo 31/07/2006, 05:45
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
ok lo he probado incluso con un texto que me sale en mi pagina 0'85 y ahora me da bien el tiempo como tiene que ser, pero no tengo la mas palida idea de como hacer para adaptar esto a lo que ya tengo hecho.
si me podrias dar una mano te lo agradeceria muchisimo
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #13 (permalink)  
Antiguo 31/07/2006, 09:19
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
Cita:
Iniciado por virla
pero no tengo la mas palida idea de como hacer para adaptar esto a lo que ya tengo hecho.
si me podrias dar una mano te lo agradeceria muchisimo
para eso tendrías que poner el codigo html (el que figura en el codigop fuente del navegador) de la parte que querés evaluar. O, si tenes la pagina colgada por allí, la direccion.

saludos
__________________
by Capitán Buscapina
.
  #14 (permalink)  
Antiguo 01/08/2006, 07:24
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
si amigo eso lo entiendo pero el tema es que como el codigo que pusistes en algo diferente al que tengo yo es ahi donde tengo mis problemas, ya que de jabascript no tengo idea, si me pueden ayudar les agradezco mucho
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #15 (permalink)  
Antiguo 01/08/2006, 09:25
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
desde ya que te voy a ayudar, pero para eso necesito una parte de tu codigo de html, si no vamos a estar un año retocando cosas.

para ir empesando:

el texto al cual le querés calcular el tiempo de lectura, esta dentro de etiquetas html (div, td, span, p) , o en elementos de un formulario (input, textarea , hidden)????


o , como mencionas que tu codigo difiere en algo con el mio, entonces, en que difiere???
__________________
by Capitán Buscapina
.
  #16 (permalink)  
Antiguo 01/08/2006, 09:36
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
no tengo problema de pasarte el codigo pero es muy largo y aca no se si entrara si me decis como hago para pasartelo por mail seria mejor
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #17 (permalink)  
Antiguo 01/08/2006, 09:48
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
ok, te mando un mensaje privado con el mail.


saludos
__________________
by Capitán Buscapina
.
  #18 (permalink)  
Antiguo 01/08/2006, 09:49
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 4 meses
Puntos: 1
ok gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:40.