weno eso como se puede determinar si una imagen se cargo en un webbrowser lo ideal seria un timer con un condicional pero no conozco una funcion que haga eso alguien tiene alguna idea?
salu2
puede alguien responder si se puede o no?
no puede haber tanta gente y q ninguno sepa =S
hola tenes que utilizar javascript para determinarlo. para ello tenes que ingresar a las propiedades del Document del webrowser
Dim LaImagen As String
Private Sub Form_Load()
Me.Show
LaImagen = "D:\Mdis documentos\Image2.png"
'WebBrowser1.Navigate "about:<img src='" & LaImagen & "' onerror=" & Chr(34) & "alert('La imagen no se cargo')" & Chr(34) & " /> "
WebBrowser1.Navigate "about:<img src='" & LaImagen & "' id=1 onerror=" & chr34 & "this.id='Error'" & chr34 & " /> "
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If WebBrowser1.Document.getelementbyid(1) Is Nothing Then
MsgBox "La Imange no se cargo"
End If
End Sub
Espero que sea eso a lo que te referias, sino explicate mejor
gracias por la ayuda pero lo que yo navego no es la pagina en la que solo esta la foto es una pagina con texto y otras fotos quiero saber si esa imagen se ha cargado. garicas salu2
El lo que quiere hacer es:
Seleccionar una imagen de el...
Navegar en cualquier web...
Y saber si se ha cargado cierta imagen..
Yo supongo que seria:
Sacando el codigo fuente, Usando Instr y Mid para ver el nombre de la imagen y comparar...
Es eso?
hola si ahora se entiende mejor, siempre es mejor especificar lo mejor posible todo, cuando se formula una pregunta.
bien me fije y la forma de saber si se cargo es mirando el tamaño de la imagen (FileSize)
lo que decia freeze, no funcionaria porque el codigo de fuente siempre va a ser igual por mas que la imagen no se cargue.
te paso un ejemplo con una pagina que por lo que veo no carga dos imagenes la 3 y la 7 en tal caso remplaza las imagenes por otra, y tambien te puse un ejemplo de como obtener otros datos
Private Sub Form_Load()
WebBrowser1.Navigate "http://www.wikilearning.com/mi_primera_aplicacion_cliente-wkccp-7936-5.htm"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
With WebBrowser1.Document.images
For i = 0 To .length - 1
Debug.Print "-------- Imagen " & i & "-----------"
Debug.Print "Ancho: " & .Item(i).Width 'Ancho
Debug.Print "Alto: " & .Item(i).Height 'Alto
Debug.Print "Tamaño: " & .Item(i).FileSize 'Tamaño
Debug.Print "Texto alternativo: " & .Item(i).alt 'Texto alternativo
Debug.Print "Direccion: " & .Item(i).src 'Direccion de la imagen
Debug.Print "-------------------------------------" & vbCrLf
If .Item(i).FileSize = -1 Then
MsgBox "La Imagen " & i & " no se cargo y sera remplzada por otra"
.Item(i).src = "C:\WINDOWS\A pescar.bmp"
End If
Next
End With
End Sub
Saludos
creo que eso servira..
especificamente lo que keria hace es suponete.. entras al foro de el hacker tenes la imagen de buscar arriba y que cuando se cargue por ejemplo la clikee pero tendria que determinar si fue cargada.. no es eso lo que quiero hacer..
lo q quiero hacer en un sitio despues de un contador aparece una imagen y el programa cuando ve q la imagen cargo va a otro y asi
salu2
usando esta funcion
Private Sub Timer1_Timer()
With WebBrowser1.Document.images
For i = 0 To .length - 1
If .Item(i).FileSize = -1 Then
If .Item(i).src = "http://imagen.gif" Then
MsgBox "la imagen nose cargo"
End If
Else
If .Item(i).src = "http://imagen.gif" Then
MsgBox "la imagen sise cargo"
End If
End If
Next
End With
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "http://paginadondetaimagen.gif.htm"
End Sub
me salta el siguiente error
CitarError '91' en tiempo de ejecución:
La variable de tipo Object o la variable de bloque With no
está establecida.
y me señala en amarillo esta parte
With WebBrowser1.Document.images
que puede ser? que estoy haciendo mal?
Hola no puedes acceder a esa propiedad hasta que el documento no se descargue por completo, de hay tal error. tenes que asegurarte de que el documento se haya descargado por eso te digo que lo pongas en el evento del WebBrowser1_DocumentComplete
lo puse asi y me sigue saltando el mismo error =S
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
With WebBrowser1.Document.images
For i = 0 To .length - 1
If .Item(i).FileSize = -1 Then
If .Item(i).src = "http://imagen.gif" Then
MsgBox "la imagen nose cargo"
End If
Else
If .Item(i).src = "http://imagen.giff" Then
MsgBox "la imagen sise cargo"
End If
End If
Next
End With
End Sub
Error '91' en tiempo de ejecución:
La variable de tipo Object o la variable de bloque With no
está establecida.
nose q puede ser
no seria mas facil, hacer que en javascript detectes si la imagen ha cargado en un div , luego manipularlo desde vb con el webbrowser?