Vie Dic 14, 2007 8:09 am
|
 |
Norther
Perlero Frecuente

|
Registrado: 24 Jul 2007
Mensajes: 117
Ubicación: Asturias
|
|
| Buscar y seguir un link |
|
|
Bueno aquí esta la duda, estoy haciendo un script para utilizar en el greasemonkey que explico a continuación:
| Javascript: | function filter(){
var log = document.getElementsByName('logedt'); // buscamos el form logedt
var nuevo = log[0].value;
if (nuevo.match(/92.178.221.546/)) { // si encontramos esta ip en la forma
var log = document.getElementsByName('logedt');
var nuevo = log[0].value;
var hola=nuevo.replace(/.*/g, ' '); // Borramos todo lo que contenga la forma en la variable auxiliar
log[0].value = hola; //y se lo pasamos a la forma
for(i=0;i<document.forms.length;i++){
if(document.forms[i].action == ""){
document.forms[i].submit(); // para despues enviarla
}
}
}
} |
Hasta ahí funciona a la perfección, pero yo quiero ir un poco mas allá, lo que quiero seria algo así (pseudocódigo):
| Javascript: | function filter(){
var log = document.getElementsByName('logedt'); // buscamos el form logedt
var nuevo = log[0].value;
if (nuevo.match(/92.178.221.546/)) { // si encontramos esta ip en la forma
var log = document.getElementsByName('logedt');
var nuevo = log[0].value;
var hola=nuevo.replace(/.*/g, ' '); // Borramos todo lo que contenga la forma en la variable auxiliar
log[0].value = hola; //y se lo pasamos a la forma
for(i=0;i<document.forms.length;i++){
if(document.forms[i].action == ""){
document.forms[i].submit(); // para despues enviarla
}
}
}
buscar en el texto del documento;
Si (encontramos el texto /continuar/) {
buscamos un link que cuyo texto contenga la palabra /Harware/;
hacemos click en el link;
llamamos a la función filter();
} |
Y eso es todo, por ahora conseguí hacerlo prácticamente todo, bueno en realidad solo es la función que hice y añadir al pie document.find creo, tengo un lío bastante grande ahora...
Lo que no sé es cómo hacer que busque un link en la página por el texto de su nombre (o por el texto del link tal que http:\\www.buscar_en_este_texto_me_sirve.com) y hacer que el script haga click físicamente en el, de forma que yo vea mi propio navegador (firefox) seguir ese link.
Empecé con esto para hacer un script chorras y al final me piqué y llevo con el unos días leyendo libros y libros de Javascript para de paso aprenderlo y la verdad ya no sé qué hacer para conseguir que haga eso, muchas gracias por cualquier posible idea  |
|
|
|


Vie Dic 14, 2007 8:10 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
|
|
|
|
|
Varias cosas...
No sé por qué razón asignas a las variables log y nuevo lo mismos valores dos veces (en la primera parte del código).
Si quieres borrar el valor de log[0], no hace falta ninguna expresión regular, ¿no?. Le asignas '' y ya está.
En la segunda parte, no puedes hacer un submit de un link. submit es para los forms.
Lo que sí puedes hacer es coger el href del link, y cargar la página... pero aquí viene el problema... ¿qué quieres decir con "hacer click" en el enlace? |
|

Vie Dic 14, 2007 11:06 pm
|
 |
Norther
Perlero Frecuente

|
Registrado: 24 Jul 2007
Mensajes: 117
Ubicación: Asturias
|
|
|
|
|
jaja ya avisé que es lo primero que he hecho en Javascript
Es que vi por ahí gente que hacía algo parecido pero en realidad le pedían al programa que viera lo que había mas allá de ese enlace, yo lo que quiero es que el script "siga" ese enlace de forma que yo vea en mi navegador como lo sigue, literalmente que emule un click hecho por mi sobre ese enlace.
Lo de la expresión regular es por que en realidad son dos funciones iguales, una busca la IP y la cambia por una palabra y otra lo borro todo, así que sencillamente copié y pegué una función a otra y cambie /palabra/ por /.*/  |
|

Sab Dic 15, 2007 12:14 am
|
 |
Norther
Perlero Frecuente

|
Registrado: 24 Jul 2007
Mensajes: 117
Ubicación: Asturias
|
|
|
|
|
¡¡¡¡¡¡Sigo haciendo progresos!!!!!!
Encontré la función window.open, de forma que haciendo
| Javascript: | function abrirlogs() {
alert(window.document.links[0].text);
window.open(window.document.links[3] , "Logs" , "width=800,height=800,scrollbars=YES");
filter();
}
function filter(){
var log = document.getElementsByName('logedt');
var nuevo = log[0].value;
if (nuevo.match(/92.178.221.122/)) {
var log = document.getElementsByName('logedt');
var nuevo = log[0].value;
var hola=nuevo.replace(/.*/g, ' ');
log[0].value = hola;
for(i=0;i<document.forms.length;i++){
if(document.forms[i].action == ""){
document.forms[i].submit();
}
}
}
}
abrirlogs(); |
Me abre tal [i]link en una ventana nueva. Dos problemas:
1- Lo que yo busco es que abra ese link en la misma ventana, no en una nueva.
2- Al abrir la ventana se pone a abrirla en un bucle infinito, como si la abriese y la refrescase constantemente, seguramente sea por estar usándolo en el GreaseMonkey, pero no sé me ocurre solución...
No sé muy bien si me voy acercando a lo que busco pero al menos espero que me vayas entendiendo mejor lo que quiero conseguir ¡Buenas noches! |
|


Powered by phpBB © 2001, 2005 phpBB Group
|