如何确定是完页 WebBrowser 控件中加载

WebBrowser 控件引发当 ReadyState 属性被更改为 READYSTATE_COMPLETE DocumentComplete 事件。 这指示 WebBrowser 控件已完成下载网页。 下面是一些关于此事件要点:
一切完成后万一有了无框架, 页 DocumentComplete 后触发。
万一有多个帧, DocumentComplete 获取激发多次。 并非所有框架激发此事件, 但各个框架引发 DownloadBegin 事件触发 DocumentComplete 事件对应。
DocumentComplete 事件有 IDispatch * 参数, 是 IDispatch 的帧 (shdocvw) 用于触发 DocumentComplete。
顶级框架触发 DocumentComplete 以结束。 因此, 检查如果页完成下载, 需要检查是否与 WebBrowser 控件的 IDispatch IDispatch * 参数。

对于 VisualBasic, 下面是执行此检查代码:
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object,
                                         URL As Variant)
   If (pDisp Is WebBrowser1.Object) Then
      Debug.Print "Web document is finished downloading"
   End If
End Sub
					
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可能是因为pyecharts生成的HTML文件包含了一些本地文件的引用,而WebBrowser控件默认情况下是不允许访问本地文件的。你可以尝试在WebBrowser控件的Navigate方法指定一个可访问的远程HTML文件,或者在加载本地HTML文件之前设置WebBrowser控件的权限以允许访问本地文件。以下是一个示例代码,你可以根据你的具体情况进行调整: ```python import os import win32com.client as win32 # 创建WebBrowser控件对象 browser = win32.Dispatch("InternetExplorer.Application") browser.Visible = True # 设置WebBrowser控件的权限以允许访问本地文件 browser.Navigate("about:blank") browser.Document.parentWindow.execScript(''' var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script"); script.type = "text/javascript"; script.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"; head.appendChild(script); ''') # 加载pyecharts生成的HTML文件 file_path = os.path.abspath("your_pyecharts_html_file.html") browser.Navigate("file://" + file_path) ``` 在以上代码,我们使用了win32包的Dispatch方法创建了一个InternetExplorer.Application对象,这个对象就是我们的WebBrowser控件。然后,我们设置了控件的Visible属性为True,使其在屏幕上可见。接下来,我们使用了WebBrowser控件的execScript方法执行了一段JavaScript代码,这段代码会在HTML文件加载之前被执行,用于设置WebBrowser控件的权限以允许访问本地文件。最后,我们使用了WebBrowser控件的Navigate方法加载了pyecharts生成的HTML文件。请注意,我们在文件路径前面加上了"file://"前缀,以指定文件的协议为file://。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值