Så här: Hämta bredd och höjd från window.open() inuti en WebBrowser-värd med hjälp av Visual Basic .NET

I DEN HÄR UPPGIFTEN

Sammanfattning

Visual Basic .NET-program som är värdar för webbläsarkontrollen kan hantera händelsen NewWindow2 om du vill fånga en window.open samtal som skapas av skriptet. Det är dock inte omedelbart uppenbara hur programmet kan hämta värdena för bredd och höjd som skickas till argumentet funktioner för window.open så att WebBrowser-värd kan ändra storlek på fönstret på rätt sätt. Den här artikeln visar hur du skaffar den nya bredden och höjden för WebBrowser-kontrollen och ändras storleken på formuläret.

Krav

Följande lista ger en översikt över rekommenderad maskinvara, programvara, nätverksinfrastruktur och service Pack-uppdateringar som du behöver:

  • Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Service Pack 2 eller senare

Skapa provet

Det här avsnittet beskrivs hur värd för WebBrowser-kontrollen i Visual Basic .NET program, hur du vill hantera NewWindow2 -händelsen för kontrollen WebBrowser och sedan hur du vill hantera WindowSetWidth och WindowSetHeight händelser till Ändra storlek på programmet.

  1. Skapa en ny Windows-program i Visual Basic på följande sätt:

    1. Starta Visual Studio .NET.

    2. Peka på Nyttpå Arkiv -menyn och sedan på projekt.

    3. Klicka på Visual Basic-projektunder Projekttyper. Klicka på Windows-programunder mallar.

  2. Klicka på Allmänti verktygslådan, högerklicka i verktygslådan och klicka sedan på Anpassa verktygslådan.

  3. Markera kryssrutan Microsoft webbläsare på fliken COM-komponenter och klicka sedan på OK.

  4. Dubbelklicka på den i Utforskaren i verktygslådan.

  5. Lägga till en knapp kontroll och en textrutekontroll i formuläret.

  6. Dubbelklicka på knappen om du vill visa genomförandet av händelsen onClick för knappen i kod-fönstret och Lägg till följande kod:

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

    Den här koden kan du gå till den URL som du anger i textrutan.

  7. Lägg till följande kod för att skriva en hanterarfunktion 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. Lägg till följande kod för att skriva en hanterarfunktion 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. Lägg till följande kod för att skriva en hanterarfunktion 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

Fullständig kodexempel

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

Kontrollera att den fungerar

  1. Skapa programmet.

  2. Öppna Anteckningar. Skapa en ny fil med beteckningen Test.htm och Lägg sedan till följande kod:

    <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. Spara Test.htm på webbservern.

  4. Kör programmet.

  5. Bläddra till sidan Test.htm och klicka sedan på knappen. Observera att Microsoft företagets webbplats öppnas i en ny instans av programmet. Formuläret ändras efter de funktioner som du skickade med anrop till window.open.

Referenser

För ytterligare information klickar du på artikelnumren nedan och läser artiklarna i Microsoft Knowledge Base:

så här: hantera dokumenthändelser i ett program för Visual Basic .NET

ta: hämta bredd och höjd som levereras till Window.open i Visual C++ WebBrowser-värdVeta mer om WebBrowser-kontrollen samt metoderna finns egenskaperna och händelserna som den visar på följande Microsoft-webbplats:

WebBrowser-kontrollen: Referens för Visual Basic-utvecklareMer information om hur du utvecklar webbaserade lösningar för Microsoft Internet Explorer finns på följande Microsoft-webbplatser:

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×