描述
导航之前发生在给定对象(在窗口或框架集元素)上。
C++ 语法
void BeforeNavigate2( IDispatch *pDisp, VARIANT *&vUrl, VARIANT *&vFlags, VARIANT *&vTargetFrameName, VARIANT *&vPostData, VARIANT *&vHeaders, VARIANT_BOOL *&bCancel ); |
PowerBASIC 语法
METHOD BeforeNavigate2 ( _ BYVAL pDisp AS IDispatch, _ BYREF vUrl AS VARIANT, _ BYREF vFlags AS VARIANT, _ BYREF vTargetFrameName AS VARIANT, _ BYREF vPostData AS VARIANT, _ BYREF vHeaders AS VARIANT, _ BYREF bCancel AS INTEGER _ ) |
参数
pDisp |
[in]指向代表窗口或框架的WebBrowser对象的IDispatch接口的指针。该界面可以查询IWebBrowser2界面。 |
vUrl |
[in]指向VARIANT类型VT_BSTR的指向,其中包含要导航的URL。 |
vFlags |
[in]指向VARIANT类型VT_I4的指针,其中包含以下标志或零。 beforeNavigateExternalFrameTarget Windows Internet Explorer 7或更高版本。此浏览是指向此浏览器的外部窗口或制表符的结果。 |
vTargetFrameName |
[in]指向VARIANT类型VARIANT的指针,其中包含要显示资源的帧的名称,如果没有为资源指定命名框架,则为NULL。 |
vPostData |
[in]指向VARIANT类型VARIANT的指针,其中包含要使用HTTP POST事务时要发送到服务器的数据。 |
vHeaders |
[in]指向VARIANT类型VT_BSTR的指向,其中包含要发送到服务器的其他HTTP标头(仅限HTTPURL)。标题可以指定服务器所需的操作,传递到服务器的数据类型或状态代码等内容。 |
bCancel |
[in, out]指向VARIANT_BOOL类型VARIANT的指针,其中包含取消标志。应用程序可以将此参数设置为VARIANT_TRUE以取消导航操作,或VARIANT_FALSE以允许其继续。 |
OBRESULT
无返回值。
事件DISPID
DISPID_BEFORENAVIGATE2
此事件的DISPID在exdispid.inc中定义。在实现IDispatch.Invoke时使用此值来标识事件处理程序。
备注
由vPostData指定的帖子数据作为SAFEARRAY结构传递。该变体应为VT_BYREF|VT_VARIANT类型,指向SAFEARRAY.SAFEARRAY应该是元素类型VT_UI1,维度一,元素计数等于帖子数据的字节数。
在没有URL表示的shell命名空间实体的情况下,vUrl参数可以是指向项目标识符列表(PIDL)的指针。
BeforeNavigate2事件取代了不再使用的BeforeNavigate和FrameBeforeNavigate事件。指定相应WebBrowser对象的PDISP参数清楚地标识出现导航的位置。Microsoft Internet Explorer 3.0需要FrameBeforeNavigate和目标帧名称来标识导航目标。但是,这个解决方案可能不明确,因为框架名称并不是唯一的。
注意Internet Explorer 4.0及更高版本继续触发BeforeNavigate和FrameBeforeNavigate事件,以与Internet Explorer 3.0兼容。
PDISP参数指定与导航对应的顶级帧的WebBrowser对象。导航到其他URL可能会由于外部自动化,脚本内部自动化或用户单击链接或输入地址栏而发生。可以通过将bCancel参数设置为VARIANT_TRUE并将修改的导航方法忽略或重新发布到WebBrowser对象来修改此导航的处理。
当重新发布WebBrowser对象的导航时,必须首先为PDISP执行停止方法。这样可以防止在处理新导航时显示宣告取消导航的网页。