Foros del Web » Programando para Internet » Javascript »

Script .js para buscar reemplazar

Estas en el tema de Script .js para buscar reemplazar en el foro de Javascript en Foros del Web. Hola... para empezar su foro es excelente todas las dudas que tengo casi siempre ya estan resueltas aqui jajajaa (por eso no tengo tantos mensajes) ...
  #1 (permalink)  
Antiguo 09/05/2012, 01:56
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 3
Pregunta Script .js para buscar reemplazar

Hola... para empezar su foro es excelente todas las dudas que tengo casi siempre ya estan resueltas aqui jajajaa (por eso no tengo tantos mensajes) sin embargo ahora me he topado con algo que requiere algo de ayuda personalizada (juro que soy de los que usa el buscador pero no encontre mi solucion ni siquiera en google)

Verán, tengo un script de esos js para greasemonkey que quiero utilizar para "mejorar" la navegación en una página determinada, pero simple y sencillamente no logro hacerlo funcionar.... no tengo problemas en que haya errores a eso de los 5k o 10k caracteres pero no llevo ni mil y ya estoy rompiendome la cabeza :(

En fin, espero me puedan ayudar, explicaré mi problema: Yo quiero hacer que al cargar la página dada, reemplace determinadas palabras, por otras (en realidad me gustaría que reemplazara con imagenes pero con eso me lo apaño, me urge que primero funcione el replace xD); entre otras varias funciones, pero la primera y principal es esta.

Este es mi código completo (si, es muuuy poco, por eso no entiendo que va mal si recién comienzo):
Código Javascript:
Ver original
  1. // ==UserScript==
  2. // @name           Mejorador de página
  3. // @autor          TAJNG
  4. // @description    Script para facilitar el uso de la herramienta de administración de la página X
  5. // @homepage       http://www.forosdelweb.com/*
  6. // @include        http://s*.*.forosdelweb.com/administracion/*
  7. // @version        1.0
  8. // ==/UserScript==
  9.  
  10. /*
  11.     Mi página es del tipo...
  12.     http://s1.es.forosdelweb.com/administracion/admin/user_diario.php?uid=2012666
  13. */
  14.  
  15. // Capturo la url para desglosarla y usarla adelante
  16. var UrlActual = location.href;
  17.  
  18. // "Parto" mi url con el split con cada diagonal "/"
  19. var SplitUrl = UrlActual.split('/');
  20.  
  21. // Aquí escojo la última parte y la vuelvo a partir usando puntos
  22. var SplitFicha = SplitUrl[5].split('.');
  23.  
  24. // Tomo la parte que me interesa para evaluarla y realizar una acción diferente segun la página
  25. var PaginaUSer = SplitFicha[0];
  26.  
  27. // Determino lo que hará si la última parte es igual a "user_diario" (sin importar lo que le siga a eso)
  28. if (PaginaUser == "user_diario")
  29.     {
  30.         var Log_Transportes = 'Transporte';
  31.         Log_Transportes = Log_Transportes.replace(/Transporte/gi,'palabra_X');
  32.     }
Eso es todo el código, como verán es muy poco y a pesar de ello no funciona :(

En fin, muchas gracias por adelantado, y si alguien se anima a ser mi tutor/mentor/maestro particular en los scripts de este tipo también lo agradecería ya que manejo el java pero en scripts de estos soy noob y no fijo si hay o no diferencias y de ser asi que tan grande es la brecha entre unos y otros xD

saludos!! :D

Última edición por TAJNG; 09/05/2012 a las 02:23
  #2 (permalink)  
Antiguo 09/05/2012, 12:57
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Script .js para buscar reemplazar

Me concentro solo en tu planteo y no en la script que estás usando, es decir
Cita:
Yo quiero hacer que al cargar la página dada, reemplace determinadas palabras, por otras (en realidad me gustaría que reemplazara con imagenes...)
Y no hace falta que te apañes....
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. Reemplazo con javascript
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8. * {
  9. font-family: verdana, arial, serif;
  10. font-size: 10pt;
  11. }
  12.  
  13. div{
  14. padding: 5px;
  15. background-color: lime;
  16. }
  17. /*]]>*/
  18. <script type="text/javascript">
  19. //<![CDATA[
  20. function reemplazar() {
  21. var eltexto = /Lorem/g;
  22. var elreemplazo='<img src="archivo.jpg" alt="" />';
  23. document.body.innerHTML = document.body.innerHTML.replace(eltexto,elreemplazo);
  24. }
  25. //]]>
  26. </head>
  27. <body onload="reemplazar();">
  28. Lorem ipsum dolor sit amet,  nuda dulcis nostro eum est  cum magna, theophilum suum quibus  coronas talem metaphysicorum
  29. Apollonius. Lorem frumento  manu in lucem  exempli paupers coniunx  in rei sensibilium  acciperem qui enim  ad quia. Care
  30. genitorem ipsam consistit ait est cum suam. Lorem aperuit filiam sunt amore nec est cum, labore in modo compungi  mulierem
  31. ubi augue eiusdem ea. Lorem agnoscere veto vero quo alacres ad quia, puto suam ad nomine Maria non dum.
  32. <p>En un párrafo Lorem</p>
  33. <div>
  34. Lorem aperuit filiam sunt amore nec est cum, labore in modo compungi  mulierem
  35. ubi augue eiusdem ea. Lorem agnoscere veto vero quo alacres ad quia, puto suam ad nomine Maria non dum.
  36. </div>
  37. <p>Cuidado con esto !!!</p>
  38. <input type="text" value="Lorem agnoscere veto vero" />
  39. </body>
  40. </html>

Pero ojo, que si lo haces para el body en forma indiscriminada, te puede pasar lo que al input al final.
A partir de aqui podrías hacer alguna modificación para que reemplaze en determinado tipo de etiquetas.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 09/05/2012, 14:44
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Script .js para buscar reemplazar

hasta la línea 28 inclusive, con esto es suficiente. en lugar de usar split y replace, se usa la propiedad indexOf()
Cita:
var url ='http://s1.es.forosdelweb.com/administracion/admin/user_diario.php?uid=2012666';
console.log(url.indexOf('user_diario') !=-1);
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 09/05/2012, 15:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 3
Respuesta: Script .js para buscar reemplazar

Al final me sirvió esto...
Cita:
Iniciado por emprear Ver Mensaje
var eltexto = /Lorem/g;
var elreemplazo='<img src="archivo.jpg" alt="" />';
document.body.innerHTML = document.body.innerHTML.replace(eltexto,elreemplaz o);
Lo único que me faltaba era esa última tercer línea y manejar una segunda variable :)

Gracias emprear ;)

IsaBelM... lamento no haber visto tu respuesta antes, sin embargo me quedé con curiosidad ¿Podrías por favor explicarme con un poco más de detalle como funciona el indexOff()? pasa que no termino de entenderle jejeje... sorry :$
  #5 (permalink)  
Antiguo 09/05/2012, 16:41
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Script .js para buscar reemplazar

el método indeOf(), con una "f", devuelve la posición de la coincidencia. en caso que no hay coincidencia, devuelve -1. de ahí que te dijera que no necesitas hacer tantos split()
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #6 (permalink)  
Antiguo 13/05/2012, 11:03
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 3
Respuesta: Script .js para buscar reemplazar

hola de nuevo... he estado haciendo el script sin muchos problemas (dentro de lo que cabe) pero me he encontrado con un inconveniente bastante grave...

verán tengo esta parte del código:
Código Javascript:
Ver original
  1. if (PaginaAT=="user_fleetlog")
  2.     {
  3.         var OldTitleFleetlog = [//*muchas variables que hay que reemplazar*//g];
  4.         var NewTitleFleetlog = ['/*unasustitución para cada variable*/'];
  5.         for (i=0;i<OldTitleFleetlog.length;i++)
  6.             {
  7.                 var PrevTitleF = '<center><img src="http://' + SplitUrl[2] + '/skin/minimized/';
  8.                 var PostTitleF = '.png"></center>';
  9.                 var TxtRTitleF = OldTitleFleetlog[i];
  10.                 var ImgRTitleF = PrevTitleF + NewTitleFleetlog[i] + PostTitleF;
  11.                 document.body.innerHTML = document.body.innerHTML.replace(TxtRTitleF,ImgRTitleF);
  12.             }
  13.         var OldTroopFleetlog = [//*otro tanto de variables para sustituir*//g];
  14.         var NewTroopFleetlog = ['/*reemplazos para cada uno*/'];
  15.         for (i=0;i<OldTroopFleetlog.length;i++)
  16.             {
  17.                 var PrevImgOTF = '<img src="http://' + SplitUrl[2] + '/skin/characters/military/x40_y40/y40_';
  18.                 var PostImgOTF = '_faceright.png">';
  19.                 var TxtReplOTF = OldTroopFleetlog[i];
  20.                 var ImgReplOTF = PrevImgOTF + NewTroopFleetlog[i] + PostImgOTF;
  21.                 document.body.innerHTML = document.body.innerHTML.replace(TxtReplOTF,ImgReplOTF);
  22.             }
  23.         var OldShipsFleetlog = [//*y aqui un tercer tanto de reemplazos*//g];
  24.         var NewShipsFleetlog = ['/*y obvio su mismo tanto de sustituciones*/'];
  25.         for (i=0;i<OldShipsFleetlog.length;i++)
  26.             {
  27.                 var PrevImgOSF = '<img src="http://' + SplitUrl[2] + '/skin/characters/fleet/40x40/ship_';
  28.                 var PostImgOSF = '_r_40x40.png">';
  29.                 var TxtReplOSF = OldShipsFleetlog[i];
  30.                 var ImgReplOSF = PrevImgOSF + NewShipsFleetlog[i] + PostImgOSF;
  31.                 document.body.innerHTML = document.body.innerHTML.replace(TxtReplOSF,ImgReplOSF);
  32.             }
  33.         var OldBodyFleetlog = [//*y aqui ya el ultimo jajajaja*//g];
  34.         var NewBodyFleetlog = ['/*idem ...lol*/'];
  35.         for (i=0;i<OldBodyFleetlog.length;i++)
  36.             {
  37.                 var PostImgOBF = '.gif">';
  38.                 var TxtReplOBF = OldBodyFleetlog[i];
  39.                 var ImgReplOBF = PrevImg + NewBodyFleetlog[i] + PostImgOBF;
  40.                 document.body.innerHTML = document.body.innerHTML.replace(TxtReplOBF,ImgReplOBF);
  41.             }
  42.     }

verán la función de este fragmento es la de buscar ciertos textos en determinada página y reemplazarlos por imágenes y el problema no lo tengo en el código puntualmente, ya que el script hace todas las funciones que quiero... PEROOO... pasa que cuando en la página hay una cantidad más considerable de texto/imagenes para reemplazar se me queda colgado el navegador completo por algunos segundos... me preguntaba si no conocerían ustedes algún método más "fácil" o rápido de reemplazar carácteres o cadenas para evitar este pequeño problema

muchas gracias por la ayuda :)

Etiquetas: .js, reemplazar, scripts
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 08:31.