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

    Ricerca testo su più schede

    Salve a tutti, avrei bisogno del vostro prezioso aiuto.
    Vi spiego il problema: vorrei realizzare un'estensione per firefox che mi consenta, su più schede aperte, di chiudere quelle che non contengono una determinata parola.

    Per fare ciò ho trovato il seguente codice:

    codice:
        var tabs = gBrowser.mTabContainer.childNodes;
        for (var i = 0; i <= tabs.length-1; i++) {
    	if (!gBrowser.getBrowserAtIndex(i).???) {
    		gBrowser.removeTab(tabs[i]);
            }
        
        }
    Il problema è che non riesco a trovare, nè so se esiste, un metodo da applicare a gBrowser.getBrowserAtIndex(i)., che mi restituisca un valore booleano a seconda che trova o meno la stringa nella scheda, in modo da provvedere alla chiusura. Qualcuno di voi sa illuminarmi?

    Siccome non sono molto esperto di JavaScript, ma non mi sembra una cosa impossibile da fare, se qualcuno ha qualke altra idea in mente, sarà ben accetta.
    Grazie 1000 a tutti coloro che leggeranno e/o interverranno.
    La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano


  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Prendendo per buono il codice per arrivare ai tab del browser (e` una cosa che non conosco), ti prospetto un'idea:
    codice:
    var str = "stringa da cercare";
    var tabs = gBrowser.mTabContainer.childNodes;
    for (var i = 0; i <= tabs.length-1; i++) {
        var docum = !gBrowser.getBrowserAtIndex(i).document.body.innerHTML;
        if (docum.indedOf(str)) {
            gBrowser.removeTab(tabs[i]);
        }
        
    }
    Oppure:
    var str = new RegExp("stringa da cercare", "i");
    ...
    if(docum.match(str)) { ...
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ok, grazie dell'aiuto, faccio una prova e vi faccio sapere
    La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano


  4. #4
    Ho provato entrambe le soluzioni, ma purtroppo nessuna delle due ha avuto riscontri positivi. L'ultimo tentativo è questo:

    codice:
    function() {
    	var str = RegExp("hello","i");
    	var tabs = gBrowser.mTabContainer.childNodes;
    	for (var i = tabs.length-1; i >= 0; i--) {
    		var docum = gBrowser.getBrowserAtIndex(i).contentDocument.body.innerHTML;
    		if (!docum.match(str)) {
            		gBrowser.removeTab(tabs[i]);
        		}		
    	}
    Qualcuno conosce qualke metodo dell'oggetto <browser> o <tabbrowser> che possa implementare una ricerca di testo?

    Eventualmente qualke idea alternativa per implementare una funzione simile?

    Help me e Grazie
    La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano


  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Fai un passo alla volta e vai in "modalita` debug" (=inserisci una serie di alert, che ti aiutano ad individuare dove sta il problema).

    Esempio:
    codice:
    function NOMEFUNZ() {
    	var str = RegExp("hello","i");
    	var tabs = gBrowser.mTabContainer.childNodes;
    	alert(tabs);                      // dovrebbe dare object, o array
    	for (var i = tabs.length-1; i >= 0; i--) {
    	//	var docum = gBrowser.getBrowserAtIndex(i).contentDocument.body.innerHTML;
    		var docum = tabs[i].document.body.innerHTML;
    		alert(docum.substr(0,20); // inizio della pagina
    		if (!docum.match(str)) {
            		gBrowser.removeTab(tabs[i]);
        		}		
    	}
    ...
    Puoi anche testare cosa ritornano i seguenti oggetti:
    tabs[i]
    tabs[i].document
    tabs[i].document.body
    ...
    se qualcuno ti da` un errore, vuol dire che quella sintassi e` sbagliata.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Sono riuscito a farlo funzionare, con il codice del mio ultimo messaggio, grazie 1000 per l'aiuto Mich.

    Ora però ho un altro problema, se devo cercare una stringa del tipo </A>, i caratteri <,/,> sono considerati speciali? Come dovrei impostare la stringa?

    Grazie
    La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano


  7. #7
    Come non detto, non sono caratteri speciali, funziona anche con quello

    Grazie, a presto
    La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano


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.