PDA

View Full Version : [VB6] Ottenere il codice html di tutti i frame


wingman87
22-10-2006, 10:11
Come si fa? Per un solo frame facevo così:
If PaginaWeb.frames.length > 0 Then
Set FrameEL = PaginaWeb.All.Item("nomeframe")
Set FrameDOC = FrameEL.contentWindow.Document
html = FrameDOC.documentElement.innerHTML
end if
Per più frame allora pensavo si facesse così:
If PaginaWeb.frames.length > 0 Then
For i = 1 To PaginaWeb.frames.length
Set FrameEL = PaginaWeb.All.Item(, i)
Set FrameDOC = FrameEL.contentWindow.Document
html = FrameDOC.documentElement.innerHTML
Next i
End If
Ma se faccio così il debug si ferma alla riga in neretto con il seguente messaggio:
Errore di runtime '438':
Proprietà o metodo non supportati dall'oggetto
Potrei usare il primo codice ma così x scaricare l'html devo conoscere il nome del frame..
Grazie x l'aiuto!

wingman87
22-10-2006, 11:47
Ce l'ho fatta! Ho cercato in lungo e in largo e alla fine ho trovato la soluzione tra i gruppi di google. Vi posto la soluzione, spero possa essere utile a qualcuno:

'Nelle dich generali:
Dim WithEvents PaginaWeb As HTMLDocument
Dim WithEvents FrameDOC As HTMLDocument

'Codice
Set PaginaWeb = Web.Document
For i = 0 To PaginaWeb.frames.length - 1
Set FrameDOC = PaginaWeb.frames(i).Document
html = FrameDOC.documentElement.innerHTML
Next

wingman87
25-10-2006, 12:37
Si è presentato un nuovo problema, a volte quando uso questo codice:
If PaginaWeb.frames.length > 0 Then
Set FrameEL = PaginaWeb.All.Item("nomeframe")
Set FrameDOC = FrameEL.contentWindow.Document
html = FrameDOC.documentElement.innerHTML
end if
Arrivato alla riga rossa non carica il document perchè mi da "autorizzazione negata". Quello che mi serve è solo il codice html, non c'è un modo per averlo lo stesso? A scanso di equivoci, non devo copiare nessun sito o cose del genere.

wingman87
26-10-2006, 15:53
UP

wingman87
28-10-2006, 00:44
UP