Visualizzazione dei risultati da 1 a 7 su 7

Discussione: search e replace

  1. #1

    search e replace

    ciauz a tutti...sto provando a fare un replace nella pagina corrente della parola "ciao"
    ma nn funziona...

    ecco il codice:

    codice:
    <html>
    <head>
    <script>
            if (document.search('/ciao/gi') != -1) {
                document = document.replace('/ciao/gi','salve');
            }
    </script>
    </head>
    <body>
    
    ciao come va?
    </body>
    </html>
    spero davvero che mi sappiate aiutare...
    non riesco davvero a risolvere...

    grazie davvero a tutti

    ciauz

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non so dove tu abbia studiato il javascript, ma mi risulta che l'oggetto document non possieda i metodi search e replace...

    http://www.devguru.com/technologies/...ript/10629.asp

    Ho intuito vagamente cio' che cerchi di fare, ma se lo spieghi chiaramente forse e' meglio

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    hai perfettamente ragione... ecco dov'era l'inghippo

    io devo sosituire in una pagina la parola "ciao" con salve, ovunque essa si trovi nel body (in un div, un un paragrafo, in un td ...)

    ho pensato che l'unico metodo sia assegnare il testo a una variabile,
    effettuare il replace dentro alla variabile
    andare a sostituire il testo dentro a body (con il metodo innerHTML)

    spero ci sia una soluzione migliore...


    ciauzzz e grazie per l'aiuto

  4. #4
    ho provato a documentarmi meglio... e ho trovato (credo) un altra possibile soluzione..ma nemmeno questa funziona :-(

    codice:
     body=document.getElementsByTagName('body')[0];
    
     bodyv=body.firstChild;
    
     bodyv.nodeValue=bodyv.nodeValue.replace('ciao','salve');

    hummm...
    nn riesco davvero a saltarcene fuori :-(

  5. #5
    dopo una giornata "spesa" a documentarmi in giro per la rete...credo di esserci riuscito

    codice:
    <html>
    <head>
    
    	<script type="text/javascript">
    	function fai_replace()
    	{
    		var body,bodyv;
    			body=document.getElementsByTagName('body')[0];
    			bodyv=body.firstChild;
    			bodyv.nodeValue=bodyv.nodeValue.replace(/ciao/gi,'salve');
    	}
    
    	
    	if(document.getElementById && document.createTextNode)
    	{
    		window.onload=function()
    		{
    			fai_replace();
    		}
    	}
        </script>
    
    </head>
    
    
    <body>
    testo ciao fine
    </body>
    </html>
    sembra funzionare...
    voi cosa ne pensate? è migliorabile?

    ciauzzz e grazie ancora

  6. #6
    mi sembrava troppo facile....

    il codice che ho postato funziona solo per il testo contenuto nel tag body...

    se invece io avessi <body>

    ciao</p></body>
    lo script nn funziona più...anzi...va in errore...

    qualcuno saprebbe consigliarmi un metodono per controllare tutto il testo...o cmq esplorare tutti i nodi?

    ciauzzz e grazie

  7. #7
    ho risolto anche quel problema...con un codice trovato su http://snippets.dzone.com/posts/show/4490#related ...eccolo
    codice:
    var words={
    'Bill':'William','Miss':'Mrs'
    }
    var regs=[];
    for(arg in words){regs[regs.length]=new RegExp(arg,'g')}
    
    window.onload=function replaceText(){
    var tags=document.getElementsByTagName('body')[0].getElementsByTagName('*');
    var i=0,t;
    	while(t=tags[i++]){
    		if(t.childNodes[0]){
    			var j=0, c;
    			while(c=t.childNodes[j++]){
    				if(c.nodeType==3){
    					var k=0;
    					for(arg in words){
    						c.nodeValue=c.nodeValue.replace(regs[k],words[arg]);
    						k++;
    					}
    				}
    			}
    		}
    	}
    }
    ora mi rimane un ultimo problema...al quale proprio nn trovo soluzione...
    guardate l'array delle parole da sostituire
    codice:
    var words={
    'Bill':'William','Miss':'Mrs'
    }
    se io volessi fare una cosa di questo tipo
    codice:
    var words={
    'Bill':'William','Miss':'Mrs'
    }
    lo script farebbe correttamente il replace...ma mi mostrerebbe a schermo il codice html...
    bisogna dunque utilizzare innerHTML, il fatto è che nn riesco in nessun modo ad adattare lo script per farlo funzionare...

    spero davvero che qualcuno mi possa aiutare...
    ciauz e grazie a tutti

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.