Gewusst wie: Erhalten Breite und Höhe window.open() WebBrowser-Host mithilfe von Visual Basic .NET

INHALT

Zusammenfassung

Visual Basic .NET Applications, die das WebBrowser-Steuerelement hosten können das window.open Aufruf abzufangen, der von einem Skript generiert NewWindow2 -Ereignis behandeln. Allerdings ist es nicht offensichtlich wie die Anwendung die Werte für Breite und Höhe erhalten, die Features des window.open Arguments übergeben werden, damit im WebBrowser-Host die Fenstergröße ordnungsgemäß ändern kann. Dieser Artikel beschreibt, wie die neue Breite und Höhe des WebBrowser-Steuerelements abrufen und die Formulargröße entsprechend.

Voraussetzungen

Die folgende Liste führt die empfohlene Hardware, Software und Netzwerkinfrastruktur sowie die benötigten Service Packs auf:

  • Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Servicepack 2 oder höher

Erstellen des Beispiels

Dieser Abschnitt beschreibt wie das WebBrowser-Steuerelement in einer Visual Basic, wie NewWindow2 -Ereignis des WebBrowser-Steuerelements behandelt und Behandlung von WindowSetWidth und WindowSetHeight Ereignisse die Größe der Anwendung.

  1. Erstellen Sie eine neue Windows-Anwendung in Visual Basic wie folgt:

    1. Starten Sie Visual Studio .NET.

    2. Klicken Sie im Menü Datei auf neu und klicken Sie dann auf Projekt.

    3. Klicken Sie unter Projekttypenauf Visual Basic-Projekte. Klicken Sie unter Vorlagenauf Windows-Anwendung.

  2. In der Toolbox auf Allgemein, klicken Sie in der Toolbox und klicken Sie dann auf Toolbox anpassen.

  3. Kontrollkästchen Sie auf der Registerkarte COM-Komponenten das Microsoft Webbrowser und klicken Sie dann auf OK.

  4. Doppelklicken Sie in der Toolbox im Explorer-Fenster.

  5. Ein Schaltflächen -Steuerelement und einem TextBox -Steuerelement zum Formular hinzufügen.

  6. Doppelklicken Sie auf die Schaltfläche, um die Implementierung der OnClick -Ereignis der Schaltfläche im Code-Fenster anzeigen, und fügen Sie den folgenden Code hinzu:

        Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub

    Diesen Code können Sie zu der URL navigieren, die Sie in das Textfeld angeben.

  7. Fügen Sie folgenden Code zum Schreiben der Handlerfunktion für NewWindow2:

        Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _        Handles AxWebBrowser1.NewWindow2            Dim frmWB As Form1            frmWB = New Form1()            frmWB.AxWebBrowser1.RegisterAsBrowser = True            e.ppDisp = frmWB.AxWebBrowser1.Application            frmWB.Visible = True    End Sub
  8. Fügen Sie folgenden Code zum Schreiben der Handlerfunktion für WindowSetHeight:

        Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _        Handles AxWebBrowser1.WindowSetHeight            Dim heightDiff As Integer            heightDiff = Me.Height - Me.AxWebBrowser1.Height            Me.Height = heightDiff + e.height    End Sub
  9. Fügen Sie folgenden Code zum Schreiben der Handlerfunktion für WindowSetWidth:

        Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _        Handles AxWebBrowser1.WindowSetWidth            Dim widthDiff As Integer            widthDiff = Me.Width - Me.AxWebBrowser1.Width            Me.Width = widthDiff + e.width    End Sub

Vollständiges Codebeispiel

Public Class Form1    Inherits System.Windows.Forms.Form#Region " Windows Form Designer generated code "    'Omitted#End Region    Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub    Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _        Handles AxWebBrowser1.NewWindow2            'MessageBox.Show(AxWebBrowser1.Height & ":" & AxWebBrowser1.Width)            'MessageBox.Show(doc.body.innerHTML)            Dim frmWB As Form1            frmWB = New Form1()            frmWB.AxWebBrowser1.RegisterAsBrowser = True            'frmWB.AxWebBrowser1.Navigate2("about:blank")            e.ppDisp = frmWB.AxWebBrowser1.Application            frmWB.Visible = True            'MessageBox.Show(frmWB.AxWebBrowser1.Height & ":" & frmWB.AxWebBrowser1.Width)    End Sub    Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _        Handles AxWebBrowser1.WindowSetHeight            'MessageBox.Show("In SetHeight" & Me.Height & ":" & e.height)            Dim heightDiff As Integer            heightDiff = Me.Height - Me.AxWebBrowser1.Height            Me.Height = heightDiff + e.height    End Sub    Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _        Handles AxWebBrowser1.WindowSetWidth            'MessageBox.Show("In SetWidth" & Me.Width & ":" & e.width)            Dim widthDiff As Integer            widthDiff = Me.Width - Me.AxWebBrowser1.Width            Me.Width = widthDiff + e.width    End SubEnd Class

Funktionsüberprüfung

  1. Erstellen Sie die Anwendung.

  2. Öffnen Sie den Editor. Erstellen Sie eine neue Datei mit dem Namen Test.htm und fügen Sie den folgenden Code hinzu:

    <HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE></TITLE><script>function openWin(){var win;win = window.open("http://www.microsoft.com","blah","width=600, height=600");}</script></HEAD><BODY><button onClick=openWin()>Open Window</button></BODY></HTML>
  3. Speichern Sie Test.htm auf Ihrem Webserver.

  4. Führen Sie die Anwendung.

  5. Wechseln Sie zur Seite Test.htm und klicken Sie dann auf die Schaltfläche. Beachten Sie, dass Microsoft Corporate-Website in einer neuen Instanz der Anwendung geöffnet wird. Das Formular wird nach Funktionen Größe, die mit dem Aufruf von window.openübergeben.

Informationsquellen

Weitere Informationen finden Sie zu die Artikeln der Microsoft Knowledge Base:

311284 wie: Behandeln von Ereignissen in einer Visual Basic

259963 so wird's gemacht: erhalten Sie Breite und Höhe angegeben Window.open in Visual C++ WebBrowser-HostWeitere Informationen über das WebBrowser-Steuerelement sowie die Methoden die Eigenschaften und Ereignisse, die sie verfügbar macht, finden Sie auf der folgenden Microsoft-Website:

WebBrowser: Referenz für Visual Basic-Entwicklerhttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxWeitere Informationen zum Entwickeln von Web-Lösungen für Microsoft Internet Explorer finden Sie auf folgenden Microsoft-Websites:

http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×