Neues Fenster in Webkit funktioniert nicht ganz

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von SMarioMasterX.

    Neues Fenster in Webkit funktioniert nicht ganz

    Hallo,
    Weis vieleicht jemand wie man in der Webkit Engine ein Neues Fenster macht?
    Ich habe bereits folgenden Code versucht:

    VB.NET-Quellcode

    1. Private Sub WebBrowser_NewWindowRequest(ByVal sender As Object, ByVal e As WebKit.NewWindowRequestEventArgs) Handles WebKitBrowser1.NewWindowRequest
    2. Dim NewWindow As New Form1
    3. NewWindow.Show()
    4. NewWindow.WebKitBrowser1.Navigate(e.Url.ToString)
    5. End Sub

    Das Problem liegt daran, dass wenn eine neue Form geöffnet wird das der Webkitbrowser nicht die Url Navigiert deshalb habe ich es mal so versucht:

    VB.NET-Quellcode

    1. Dim NewWindow As New Form1
    2. NewWindow.Show()
    3. Textbox1.Text = (e.Url.ToString)

    Und in der Textbox Stand nichts drin, weis einer wie man das lösen könnte?
    Wenn Du die Prozedur vefrlässt, wird dem Fenster die Basis entzogen und es wird geschlossen.
    Also:

    VB.NET-Quellcode

    1. Private NewWindow As Form1
    2. Private Sub WebBrowser_NewWindowRequest(ByVal sender As Object, ByVal e As WebKit.NewWindowRequestEventArgs) Handles WebKitBrowser1.NewWindowRequest
    3. If NewWindow Is Nothing OrElse NewWindow.IsDisposed() Then
    4. NewWindow = New Form1
    5. End If
    6. If Not NewWindow.VCisible Then
    7. NewWindow.Show()
    8. End If
    9. NewWindow.WebKitBrowser1.Navigate(e.Url.ToString)
    10. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Handles WebKitBrowser1.NewWindowRequest
    Ist das das richtige Event?
    Setz mal auf die Zeile

    VB.NET-Quellcode

    1. NewWindow.WebKitBrowser1.Navigate(e.Url.ToString)
    mit f9 einen Haltepunkt und sieh Dir an, was in der Url steht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es gibt zwei Events, einmal das NewWindowRequest und NewWindowsCreated wenn ich in NewWindowRequestet schreibe

    VB.NET-Quellcode

    1. Textbox1.Text = WebkitBrowser1(e.Url.ToString)

    Erscheint keine Url in der Textbox und wenn ich in NewWindowRequestet nur

    VB.NET-Quellcode

    1. NewWindow.WebKitBrowser1.Navigate(e.Url.ToString)

    Schreibe kommt folgender Fehler:
    NullReferenceException wurde nicht von Benutzercode Behandelt
    In der Webkit Source steht wie ein neues Fenster geht aber leider in c# das ich nicht verstehe

    VB.NET-Quellcode

    1. }
    2. void browser_NewWindowCreated(object sender, NewWindowCreatedEventArgs args)
    3. {
    4. tabControl.TabPages.Add(new WebBrowserTabPage(args.WebKitBrowser, false));
    5. }
    6. void browser_NewWindowRequest(object sender, NewWindowRequestEventArgs args)
    7. {
    8. args.Cancel = (MessageBox.Show(args.Url, "Open new window?", MessageBoxButtons.YesNo) == DialogResult.No);
    9. }
    Snippet Converter

    VB.NET-Quellcode

    1. Private Sub browser_NewWindowCreated(sender As Object, args As NewWindowCreatedEventArgs)
    2. tabControl.TabPages.Add(New WebBrowserTabPage(args.WebKitBrowser, False))
    3. End Sub
    4. Private Sub browser_NewWindowRequest(sender As Object, args As NewWindowRequestEventArgs)
    5. args.Cancel = (MessageBox.Show(args.Url, "Open new window?", MessageBoxButtons.YesNo) = DialogResult.No)
    6. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    WebBrowserTabpage

    OK, aber im NewWindowCreated Event gibt es keine New WebBrowserTabpage

    VB.NET-Quellcode

    1. Private Sub browser_NewWindowCreated(ByVal sender As Object, ByVal args As NewWindowCreatedEventArgs)
    2. TabControl1.TabPages.Add(New WebBrowserTabPage(args.WebKitBrowser, False))
    3. End Sub

    Wenn ich es in WebkitBrowserTabpage, Webkitbrowser oder auch Webkit.Webkitbrowser umbennene wird args.WebkitBrowser als Falsch unterstrichen
    Zurück zu Feld Nummer 1.
    Ich hab Die Deinen C#-Code nach VB übersetzt. Wenn das nicht passt - Sorry.
    Hast Du mit dem Haltepunkt was erreicht?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!