Hilfe bei Navigation im Webbrowser

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Threeger.

    @wertherchen
    "Webbrowser Programmieren" wird im allgemeinen sowieso falsch verwendet. Egal ob nun mit WebbrowserControl, GeckoFX oder WebKit - letztendlich sind alle Programme, die ich bis jetzt gesehen hab, nur Container für bereits fertige Webbrowser. Eine richtige Browserengine zu entwickeln kann man als Privatperson vergessen.
    @Threeger
    Du meinst, dass dann so eine Seite kommt, in der steht "Konnte nicht geladen werden" oder?
    Dafür kannst du einfach einen kleine HTML-Code implementieren und im DocumentText anzeigen lassen...
    Beispielsweise über die Ressourcen.
    Einfach bei fehlerhafter Navigation den HTML-Code aus den Ressourcen laden und anzeigen.
    So musst du nur mit HTML einen Titel und einen <body> einfügen...
    Das größte daran ist also nur das Ganze abzufangen....

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „programmer71“ ()

    @Threeger
    Hier mal eine Seite, wie sie vom normalen Browser geschmissen wird.

    HTML
    Spoiler anzeigen

    HTML-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2. <html>
    3. <head>
    4. <link rel="stylesheet" type="text/css" href="style.css" />
    5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    6. <title>Navigation wurde abgebrochen</title>
    7. <script src="res://ieframe.dll/errorPageStrings.js" language="javascript" type="text/javascript">
    8. </script>
    9. <script src="res://ieframe.dll/httpErrorPagesScripts.js" language="javascript" type="text/javascript">
    10. </script>
    11. </head>
    12. <body onLoad="javascript:navCancelInit(); ">
    13. <table width="730" cellpadding="0" cellspacing="0" border="0">
    14. <!-- Error title -->
    15. <tr>
    16. <td id="infoIconAlign" width="60" align="left" valign="top" rowspan="2">
    17. <img src="info.png" id="infoIcon" alt="Infosymbol">
    18. </td>
    19. <td id="mainTitleAlign" valign="middle" align="left" width="*">
    20. <h1 id="mainTitle">Die Navigation zu der Webseite wurde abgebrochen</h1>
    21. </td>
    22. </tr>
    23. <tr>
    24. <!-- This row is for HTTP status code, as well as the divider-->
    25. <td id="errorCodeAlign" class="errorCodeAndDivider" align="right">&nbsp;
    26. <div class="divider"></div>
    27. </td>
    28. </tr>
    29. <!-- Error Body -->
    30. <!-- What you can do -->
    31. <tr>
    32. <td>
    33. &nbsp;
    34. </td>
    35. <td id="whatToTryAlign" valign="top" align="left">
    36. <h2 id="whatToTry">Mögliche Lösungen:</h2>
    37. </td>
    38. </tr>
    39. <!-- refresh page -->
    40. <tr>
    41. <td >
    42. &nbsp;
    43. </td>
    44. <td id="refreshPageAlign" align="left" valign="middle">
    45. <h4>
    46. <table>
    47. <tr>
    48. <td valign="top">
    49. <img src="icon.png" border="0" alt="" class="actionIcon">Aktualisieren Sie die Seite</img>
    50. </td>
    51. <tr></tr>
    52. <td valign="top">
    53. <img src="icon.png" border="0" alt="" class="actionIcon">Informieren Sie ...</img>
    54. </td>
    55. </tr>
    56. </table>
    57. </h4>
    58. </td>
    59. </tr>
    60. </table>
    61. </body>
    62. </html>


    Css
    Spoiler anzeigen

    CSS-Quellcode

    1. body
    2. {
    3. font-family: "Segoe UI", "verdana", "arial";
    4. background-image: url(background_gradient.jpg);
    5. background-repeat: repeat-x;
    6. background-color: #E8EAEF;
    7. margin-top: 20px;
    8. margin-left: 20px;
    9. color: #575757;
    10. }
    11. body.securityError
    12. {
    13. font-family: "Segoe UI", "verdana" , "Arial";
    14. background-image: url(background_gradient_red.jpg);
    15. background-repeat: repeat-x;
    16. background-color: #E8EAEF;
    17. margin-top: 20px;
    18. margin-left: 20px;
    19. }
    20. body.tabInfo
    21. {
    22. background-image: none;
    23. background-color: #F4F4F4;
    24. }
    25. a
    26. {
    27. color: rgb(19,112,171); font-size: 1em;
    28. font-weight: normal;
    29. text-decoration: none;
    30. margin-left: 0px;
    31. vertical-align: top;
    32. }
    33. a:link, a:visited
    34. {
    35. color: rgb(19,112,171);
    36. text-decoration: none;
    37. vertical-align: top;
    38. }
    39. a:hover
    40. {
    41. color: rgb(7,74,229);
    42. text-decoration: underline;
    43. }
    44. p
    45. {
    46. font-size: 0.9em;
    47. }
    48. h1 /* used for Title */
    49. {
    50. color: #4465A2;
    51. font-size: 1.1em;
    52. font-weight: normal;
    53. vertical-align:bottom;
    54. margin-top: 7px;
    55. margin-bottom: 4px;
    56. }
    57. h2 /* used for Heading in Main Body */
    58. {
    59. font-size: 0.9em;
    60. font-weight: normal;
    61. margin-top: 20px;
    62. margin-bottom: 1px;
    63. }
    64. h3 /* used for text in main body */
    65. {
    66. font-size: 0.9em;
    67. font-weight: normal;
    68. margin-top: 10px;
    69. margin-bottom: 1px;
    70. }
    71. h4 /* used for task links*/
    72. {
    73. font-size: 0.9em;
    74. font-weight: normal;
    75. margin-top: 12px;
    76. margin-bottom: 1px;
    77. }
    78. h5 /* used for Heading in InfoBlock */
    79. {
    80. font-size: 1em;
    81. font-weight: normal;
    82. margin-bottom: 0px;
    83. margin-top: 1px;
    84. font-size: 0.9em;
    85. color: #575757;
    86. }
    87. .actionIcon /* used for task link icons */
    88. {
    89. vertical-align: middle;
    90. margin-top: 0px;
    91. margin-right: 6px;
    92. }
    93. .infoBlock
    94. {
    95. padding-left: 25px;
    96. font-size: 0.9em;
    97. display: block;
    98. line-height: 1.1 em;
    99. color: #575757;
    100. }
    101. .errorCodeAndDivider
    102. {
    103. font-size: 0.7em;
    104. font-weight: normal;
    105. color: #787878;
    106. }
    107. ul, ol
    108. {
    109. font-size: 0.9em;
    110. list-style-position: outside;
    111. margin-top: 1px;
    112. margin-bottom: 1px;
    113. padding-top: 1px;
    114. padding-bottom: 1px;
    115. line-height: 1.3em;
    116. }
    117. .divider
    118. {
    119. border-bottom: #B6BCC6 1px solid;
    120. }
    121. Hide details
    122. Change log
    123. r39 by kabootal on Apr 6, 2010 Diff
    124. [No log message]
    125. Go to:
    126. Project members, sign in to write a code review
    127. Older revisions
    128. All revisions of this file
    129. File info
    130. Size: 2168 bytes, 137 lines
    131. View raw file



    Quelle CSS: link
    Bilder
    • html.png

      10,57 kB, 824×178, 184 mal angesehen
    • info.png

      6,99 kB, 47×48, 717 mal angesehen
    • icon.png

      3,17 kB, 15×15, 567 mal angesehen

    Artentus schrieb:

    @wertherchen
    "Webbrowser Programmieren" wird im allgemeinen sowieso falsch verwendet. Egal ob nun mit WebbrowserControl, GeckoFX oder WebKit - letztendlich sind alle Programme, die ich bis jetzt gesehen hab, nur Container für bereits fertige Webbrowser. Eine richtige Browserengine zu entwickeln kann man als Privatperson vergessen.


    Das ist mir alles schon klar :D . Ich steh halt nur total drauf wenn Leute klar äußern können was sie eigentlich vorhaben. :)

    Zum Problem. So wie ich das verstehe, nutzt Du den IE. Möglicherweise kannst Du Dir auch ein Add-On schreiben.
    add-in-express.com/programming…rer/developing-addons.php
    @Threeger
    Wie oben schon gesagt musst du einfach den Document Text ändern, wenn die Seite nicht geladen werden konnte. Eine Möglichkeit,
    ist auf den dann erscheinenden Quelltext zu prüfen. Ein Beispiel, welches klappt.

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. WebBrowser1.Navigate("http//google.de") 'Extra den "Doppelpunkt" weggelassen
    5. End Sub
    6. 'Wenn fertig geladen
    7. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    8. If WebBrowser1.DocumentText.Contains("res://ieframe.dll/ErrorPageTemplate.css") Then 'Wenn der Quelltext das enthält
    9. WebBrowser1.DocumentText = "Mein definierter Text" 'Den Quelltext ändern
    10. End If
    11. End Sub
    12. End Class
    Bilder
    • wb.png

      14,82 kB, 759×390, 175 mal angesehen
    @Threeger
    Ist zwar nicht die beste Möglichkeit, aber eine gute Idee für den Anfang... :D
    Sende am Besten eine Anfrage an den Server und warte auf die Antwort, das ist besser und funzt überall.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „programmer71“ ()

    @Threeger

    @Manawyrm hat recht...
    Du kannst das dann nicht wirklich immer nutzen... aber auf die Idee muss man wirklich erstmal kommen... Hmm vielleicht liegt es daran, dass man in so einer Situation irgendwas versucht....
    Also mit einem Quelltext ging es eigentlich immer auf jedem System...