Webbrowser, Skriptfehler, Diagramm in Druckversion fehlt

  • VB.NET
  • .NET (FX) 4.0

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von FranzKlammer.

    Webbrowser, Skriptfehler, Diagramm in Druckversion fehlt

    Hallo,

    ich hab nun mein Bestes gegeben, aber - wie zu vermuten - bin ich nicht fündig geworden.

    Mein Problem ist folgendes:
    Ich nutze einen temporären WebBrowser um die Wettervorhersage eines dynamisch wechselnden Ortes auszudrucken. Das funktioniert auch alles soweit, nur wird beim direkten Zugriff auf die Seite das Diagramm bzgl. des Temperaturverlaufes nicht angezeigt. Der Browser gibt auch einen entsprechenden Skriptfehler zurück:
    ---------------------------
    Titel: Skriptfehler
    Fehlermeldung: In dem Skript auf dieser Seite ist ein Fehler aufgetreten.
    Zeile: 0
    Zeichen: 0
    Fehler: Script error
    Code: 0
    URL: "http://ls1.wettercomassets.com/js/diagrams.js"

    Möchten Sie, dass Scripts auf dieser Seite weiterhin ausgeführt werden?
    ---------------------------

    Der Witz ist, dass wenn man manuel im Webbrowser beispielsweise über:
    "http://www.wetter.com/wetter_aktuell/wettervorhersage/7_tagesvorhersage/?id=DE0001020"

    die Druckversion öffnet kein Fehler kommt und das Diagramm erscheint. Wenn man aber den Pfad - zur Druckversion - verwendet (="direkter Pfad"), erhalte ich o.a. Skriptfehler.
    "http://www.wetter.com/wetter_aktuell/wettervorhersage/7_tagesvorhersage/?id=DE0001020&print=true"

    Wenn ich euch das eben so erläutere komme ich nur auf die "unschöne" Idee die "Hauptseite" laden zu lassen und anschließend die Druckversion zu öffnen und dann den Druckbefehl auszulösen. Aber ich hoffe von euch ist eine/einer fitt genug um sich der Sache anzunehmen und mir zu helfen. Bzw. zu sagen woran es überhaupt liegt, dass es nicht geht. Denn:
    "Wissen ist Macht, und nichts wissen macht nichts."
    Ich will mein Bestes geben um diese Sache sauber zu lösen, darum hier der Vollständigkeit halber der Quelltext und danke vorab, dass Du soweit gelesen hast:

    Hinweise:
    • nTage = 3 oder 7 oder 16
    • der iStadtCode zu o.g. Beispiel lautet: DE0001020
    • Drucken = Wahr wenn im Hintergrund/im temporären Browser gedruckt werden soll (hier erscheint kein Diagramm und die Skriptfehler-Meldung), Falsch wenn sich der standardmäßig eingestellte Browser öffnen soll (hier wird das Diagramm angezeigt, bei mir Mozilla Firefox)

    VB.NET-Quellcode

    1. Function WetterHP_Oeffnen(ByVal nTage As Integer, ByVal iStadtCode As String, ByVal Drucken As Boolean) As Boolean
    2. 'Logikprüfungen
    3. If iStadtCode = vbNullString Then Return False
    4. Select Case nTage
    5. Case 3, 7, 16
    6. 'Prozess
    7. If Drucken = True Then
    8. 'temporären Webbrowser laden
    9. Dim iBr As New WebBrowser
    10. 'Skriptfehler nicht anzeigen
    11. iBr.ScriptErrorsSuppressed = True
    12. 'Seite öffnen
    13. iBr.Navigate("http://www.wetter.com/wetter_aktuell/wettervorhersage/" & nTage & "_tagesvorhersage/?id=" & iStadtCode & "&print=true")
    14. 'Warte auf HP
    15. While iBr.ReadyState <> WebBrowserReadyState.Complete
    16. Application.DoEvents()
    17. End While
    18. 'Drucken
    19. iBr.Document.InvokeScript("print")
    20. Return True
    21. Else
    22. 'Standardbrowser öffnen
    23. Process.Start("http://www.wetter.com/wetter_aktuell/wettervorhersage/" & nTage & "_tagesvorhersage/?id=" & iStadtCode & "&print=true")
    24. Return True
    25. End If
    26. Case Else
    27. 'iStadtCode oder nTage entspricht nicht den Vorgaben
    28. Return False
    29. End Select
    30. End Function


    PS: Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte. ;(

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „FranzKlammer“ ()