岁月留声QtAsp

Qt in Linux , Asp Asp.net Jsp Php in Web

« IE在UTF-8下解析JavaScript的bug 乱码的问题解决VC/MFC 让程序不在任务栏上显示 »

WebBrowser window.open

 

用了.Net下的WebBrowser 结果不执行javascript中的window.open

http://support.microsoft.com/kb/311290

创建示例

本节介绍如何承载 WebBrowser 控件在 Visual Basic.NET 应用程序中的、 如何处理 NewWindow2 事件,在 WebBrowser 控件的以及然后如何处理 WindowSetWidth WindowSetHeight 事件调整您的应用程序。

  1. 如下所示在 Visual Basic 中创建新的 Windows 应用程序:
    1. 启动 Visual Studio.NET。
    2. 文件 菜单上指向 新建 ,然后单击 项目
    3. 项目类型 ,下单击 Visual Basic 项目 。 在 模板 ,下单击 Windows 应用程序
  2. 在工具箱中,单击 常规 ,右键单击,将的工具箱,然后单击 自定义工具箱
  3. COM 组件 选项卡上选中 Microsoft Web 浏览器 复选框,然后单击 确定
  4. 在工具箱,双击在资源管理器窗口。
  5. 向窗体,请添加一个 Button 控件和一个 TextBox 控件。
  6. 双击若要查看到代码窗口中的按钮的 onClick 事件的在实现该按钮,然后添加以下代码:
        Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub						
    此代码允许您浏览到您在文本框中指定的 URL。
  7. 添加以下代码为 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. 添加以下代码为 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. 添加以下代码为 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					

完成代码示例

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				

验证在工作的

  1. 生成应用程序。
  2. 打开记事本。 创建一个名为 Test.htm 的新文件,然后添加以下代码:
    <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. 将 test.htm 保存您的 Web 服务器上中。
  4. 运行该应用程序。
  5. 浏览到该 test.htm 页,然后单击按钮。 注意 Microsoft 公司 Web 站点打开应用程序的新实例中。 在窗体根据会调整通过 window.open 调用传递的功能。

 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

Search

  •  

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense

Copyright 2008-2011 京公网安备 110115000655 京ICP备09005635号 www.qtasp.cn WebSite. All Rights Reserved.