Navigation:  Internet Development > WebBrowser Control > Interfaces > DWebBrowserEvents2 >

BeforeNavigate2

Previous pageReturn to chapter overviewNext page

描述

 

导航之前发生在给定对象(在窗口或框架集元素)上。

 

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事件取代了不再使用的BeforeNavigateFrameBeforeNavigate事件。指定相应WebBrowser对象的PDISP参数清楚地标识出现导航的位置。Microsoft Internet Explorer 3.0需要FrameBeforeNavigate和目标帧名称来标识导航目标。但是,这个解决方案可能不明确,因为框架名称并不是唯一的。

 

注意Internet Explorer 4.0及更高版本继续触发BeforeNavigateFrameBeforeNavigate事件,以与Internet Explorer 3.0兼容。

 

PDISP参数指定与导航对应的顶级帧的WebBrowser对象。导航到其他URL可能会由于外部自动化,脚本内部自动化或用户单击链接或输入地址栏而发生。可以通过将bCancel参数设置为VARIANT_TRUE并将修改的导航方法忽略或重新发布到WebBrowser对象来修改此导航的处理。

 

当重新发布WebBrowser对象的导航时,必须首先为PDISP执行停止方法。这样可以防止在处理新导航时显示宣告取消导航的网页。