Newsgroup: it.comp.lang.javascript
Titolo: Inserire HTML del document in una variabile

Ciao a tutti!
Non essendo stato capace di trovare nessun precedente post mi
scuso se l'argomento è stato gia' trattato.
Il mio Pb consiste nel fatto che devo fare in modo
di analizzare una pagina web tramite delle espressioni regolari.
Visto che la mia applicazione è scritta in XUL (Firefox) dovrei usare
per forza Javascript (quindi Firefox compliant).
Praticamente pensavo di ritornare l'HTML del document della pagina
ed inserirlo in una var, per poi effettuare la ricerca, 
il mio codice è il seguente (non troca mai nulla):
var source_frame = iFrameWin.frames[2].document.createRange();
source_frame.selectNodeContents(iFrameWin.frames[2].document.body);
var str_frame   = source_frame.toString();
var espressione = /MVBackButton+_([0-9])/;
if(espressione.test(str_frame)){
  alert("Trovata!");
}
Da come si è capito la pagina è suddivisa in frame.
Il precedente snap non funziona?
Avete qualche idea?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao a tutti!
Non essendo stato capace di trovare nessun precedente post mi
scuso se l'argomento è stato gia' trattato.
Il mio Pb consiste nel fatto che devo fare in modo
di analizzare una pagina web tramite delle espressioni regolari.
Visto che la mia applicazione è scritta in XUL (Firefox) dovrei usare
per forza Javascript (quindi Firefox compliant).
Praticamente pensavo di ritornare l'HTML del document della pagina
ed inserirlo in una var, per poi effettuare la ricerca, 
il mio codice è il seguente (non trova mai nulla):
var source_frame = iFrameWin.frames[2].document.createRange();
source_frame.selectNodeContents(iFrameWin.frames[2].document.body);
var str_frame   = source_frame.toString();
var espressione = /MVBackButton+_([0-9])/;
if(espressione.test(str_frame)){
  alert("Trovata!");
}
Una volta ottenuto il riferimento al frame (iFrame) cerco di
ritornare l'HTML del document del mio frame (frames[2].document.body)
per poi cercare la mia espressione.
Il frame è quello giusto, l'ho appurato (non è qui il pb)
Lo snap della ricerca funziona,l'ho provato già in un altro contesto.
Il problema dovrebbe risiedere nelle funzioni :
- createRange();
- selectNodeContents(...);
che non so usare bene, quindi potrei aver commesso erroracci.
Avete qualche idea?
Grazie


 Avete qualche idea?
Sinceramente, essendo tutt'ora in ferie, non ho una gran voglia di mettermi
a studiare il codice altrui, nonostante voglia comunque dare il mio piccolo
contributo. :)
Prova ad utilizzare innerHTML o XMLSerializer, dovrebbero essere più veloci
e semplici da usare.
-- 
"Se c'è qualcosa di più importante del mio ego su questa nave,
la voglio catturata e fucilata."

Ti ringrazio ZERO per i tuoi consigli.
Il mio pb era inserire l'HTML del document dentro una var
in modo da poter effettuare una ricerca mediante espressioni regolari,
ho risolto cosi' :
(Forse innerHTML non fà parte del DOM, ma io chiudo un occhio ;)
var html_frame = document.body.innerHTML;
var str_frame  = html_frame.toString();
var espressione = /Button+_([0-9])/;
if(espressione.test(str_frame)){
  alert("trovata");
}
Praticamente ho risolto con la prima linea di codice,
era una questione di ignoranza mia personale nell'uso
di javascript.
Comunque, se non abuso della vostra pazienda, vorrei chiedervi
un'altra cosa:
Se, una appurato che la mia stringa è presente nel HTML, volessi
recuperare il valore esatto della stringa stessa, come faccio?
Mi spiego meglio, la mia espr. reg. /Button+_([0-9])/ mi dice
che nel HTML è presente una stringa del tipo "Button_5152958",
ma Io in realtà avrei bisogno di recuperare l'esatto valore
della stringa. 
Come potrei fare?
Vi ringrazio tanto per l'attenzione !


 recuperare il valore esatto della stringa stessa, come faccio?
Se ho ben capito, puoi fare tutto assieme. Invece di utilizzare il metodo
"test" della regexp, puoi usare il metodo "match" dell'oggetto string:
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:String:match


Grazie 1000 Zero!
Ora funziona tutto!
Ho dovuto un'po' faticare per capire il motivo per cui mi ritornava
una sola stringa.
/Mia_Espressione_Regolare/gi
caspita alla fine dovevo metterci la 'g' per fargli analizare
l'intero document e la 'i' per eludere il case-sensitive.
Ciao!
