wenn ich manuell die Webseite: http://www.getlatlon.com mit dem IE aufrufe, so sehe ich im Quellcode u.a. dieses:
var geocodeForm = document.getElementById('geocodeForm');
geocodeForm.onsubmit = function() {
geocode(document.getElementById('geocodeInput').value);
return false;
Daraus folgere ich ohne jedede Html-Kenntnisse, es gibt da ein Textfeld namens "geocodeInput", das müßte ich "nur" mit Vba ausfüllen und dann "Submit" o.ä. an die Seite senden.
Das geht leider nicht so, wenn ich die Seite mit Vba aufrufe, siehe nachstehenden Code, so kommt eine Seite mit völlig anderem Quellcode :-(
(falls ihr so nett seid zu testen, ich glaub anzupassen ist nur der Pfad bei C:\test\htmltext.txt)
Wie also komme ich mit Code auf die manuell aufgerufene Seite? Endziel ist die Lat/Lon-Werte auszulesen.
Danke ^ Gruß
Reinhard
Option Explicit
Sub Test()
Dim Z
Close
Open "C:\test\htmltext.txt" For Output As #1
Print #1, GetInnerX("http://www.getlatlon.com", "HTML")
Close 1
Z = Shell("notepad.exe C:\test\htmltext.txt", vbMaximizedFocus)
End Sub
Function GetInnerX(strURL As String, Optional strWhat As String = "HTML") As String
Dim objIE As Object, objDoc As Object
Dim strMldg As String
GetInnerX = ""
On Error GoTo ErrorHandler 'evtl. Fehler (auch serverseitig) abfangen
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate strURL
Do While objIE.Busy
Loop
Set objDoc = objIE.Document
Do While objDoc.readyState "complete"
Loop
Select Case UCase(strWhat)
Case "HTML"
GetInnerX = objDoc.Body.InnerHTML
Case Else
GetInnerX = objDoc.Body.InnerText
End Select
'objIE.Quit
Exit Function
ErrorHandler:
If Err.Number 0 Then
strMldg = "Fehler 0x" & Hex(Str(Err.Number)) & " wurde ausgelöst von " _
& Err.Source & Chr(10) & Err.Description
MsgBox strMldg, vbCritical, "Fehler beim Zugriff auf WWW via InternetExplorer", Err.HelpFile, _
Err.HelpContext
Err.Clear
End If
End Function