Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    setTimeout che non funziona

    Ragazzi cosa c'è di sbagliato in questo scrippettino che dovrebbe fare ricerche automatiche su google?.

    In pratica appena parte mi dice subito: lista finita.

    // ==UserScript==
    // @name Google Test
    // @namespace Fantasy Script
    // @description Test Comandi
    // @include http://www.google.it/
    // ==/UserScript==

    var lista = [];
    var tempoMassimo = 10;
    var i = 0;
    var millisec=0;
    var ev = 0;

    casellaTesto = document.getElementById("lst-ib");


    function chiamata(){
    millisec=Math.round(Math.random()*1000*tempoMassim o);
    casellaTesto.value = lista[i];
    i++;
    if (lista[i]==undefined) {alert("Lista finita")}
    else {var ev = window.setTimeout(chiamata(), millisec);}

    }

    GM_xmlhttpRequest({
    method: "GET",
    synchronous: true,
    url: "??????????????",
    onload: function(response) {
    alert(response.responseText);
    lista = response.responseText.split("\n");
    chiamata();
    }
    });


    Al posto dei ???? c'è un file di testo con parole su più linee.

    Avete qualche idea?

  2. #2
    codice:
    // ==UserScript==
    // @name           Google Test
    // @namespace      Fantasy Script
    // @description    Test Comandi
    // @include        http://www.google.it/
    // ==/UserScript==
    
    var lista = [];
    var tempoMassimo = 10;
    var i = 0;
    var millisec=0;
    var ev = 0;
    
    casellaTesto = document.getElementById("lst-ib");
    
    
    function chiamata(){
    	millisec=Math.round(Math.random()*1000*tempoMassimo);
    	casellaTesto.value = lista[i];
    	i = i+1;
    	if (!(lista==undefined)) chiamata();
    		else alert("Basta");	
    }
    
    GM_xmlhttpRequest({
    	method: "GET",
    	synchronous: true,
    	url: "http://www.andreaemarta.it/gs/lista1.txt",
    	onload: function(response) {
    	alert(response.responseText);
     	lista = response.responseText.split("\n");
    	chiamata();
     	}
    });
    In questa versione non dovrebbe lasciare nella casella di testo l'ultima voce del file di testo?..invece lascia "Undefined"..

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    fai un ciclo per verificare che all'intero di lista siano presenti le righe di testo recuperate

  4. #4
    Prova questo:

    codice:
    // ==UserScript==
    // @name           Google Test
    // @namespace      Fantasy Script
    // @description    Test Comandi
    // @include        http://www.google.it/
    // ==/UserScript==
    
    var casellaTesto = document.getElementById("lst-ib");
    
    function setInput(list, idx) {
    	setTimeout(function() {
    		casellaTesto.value = list[idx];
    	}, 1000);
    }
    
    GM_xmlhttpRequest({
    	method: "GET",
    	synchronous: true,
    	url: "http://www.andreaemarta.it/gs/lista1.txt",
    	onload: function(response) {
    		console.log(response.responseText);
    		var list = response.responseText.split("\n");		
    		console.log(list.length);
    		if(list.length > 0) {
    			if(list[list.length-1] === "") {
    				list = list.splice(0, list.length-1);
    			}
    			setInput(list, list.length-1);
    		}
     	}
    });
    A titolo di esempio, setto l'ultimo valore


  5. #5
    Ok grazie mille Funziona tutto!.


    Ora ho solo un altra domanda. L'ultima prometto.

    Se da GreaseMonkey chiamo una funzione della pagina che contiene:

    "var pagina = window.open(wwww.asdasda.it)"


    Come faccio poi a chiuderla sempre dallo stesso script?
    In pratica non so come immagazzinare il riferimento con GreaseMonkey


    Grazie

    Andrea

    Ciaooo

  6. #6
    la variabile pagina è una Window, quindi semplicemente:

    codice:
    var pagina = window.open("http://www.html.it/")
    console.log(pagina);
    
    setTimeout(function() {
    	pagina.close();
    }, 2000);

  7. #7
    Eh..ma il mio problema è che

    var pagina = window.open("http://www.html.it/")

    si trova all'interno di una funzione della pagina.

    Come faccio a "tirarne fuori" un riferimento?

  8. #8
    se la variabile pagina è definita all'interno di una funzione allora quel riferimento viene perso e, per quanto ne so, non hai nessuna possibilità di ottenere il riferimento della window che è stata aperta in altra maniera (tipo con un fantomatico window.childWindows).
    Diverso sarebbe stato se il riferimento fosse stato conservato in una variabile globale (ci accedevi con unsafeWindow). Spiacente.



Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.