描述
要创建新窗口时触发。
C++ 语法
void NewWindow2( IDispatch **&ppDisp, VARIANT_BOOL *&bCancel ); |
PowerBASIC 语法
METHOD NewWindow2 ( _ BYREF ppDisp AS IDispatch, _ BYREF bCancel AS INTEGER _ ) |
参数
ppDisp |
[in, out]接口指针的地址,可选地接收新的WebBrowser或InternetExplorer对象的IDispatch接口指针。 |
bCancel |
[in, out]布尔值,以确定当前的导航是否应该被取消。 VARIANT_TRUE 取消导航。 VARIANT_FALSE 不要取消导航。 |
OBRESULT
无返回值。
事件DISPID
DISPID_NEWWINDOW2
此事件的DISPID在exdispid.inc中定义。在实现IDispatch接口的调用方法时,使用此值来标识事件处理程序。
备注
在Microsoft Internet Explorer中,当用户从“文件”菜单上的“新建”命令中选择“窗口”时,不会触发NewWindow2事件。此事件在WebBrowser内创建新窗口之前。例如,NewWindow2响应导向到新窗口的导航或从使用IHTMLWindow2.open方法的脚本触发。
当一个窗口即将被创建时,NewWindow2事件触发,例如在以下操作期间:
· | 用户在按SHIFT键的同时单击链接。 |
· | 用户右键单击链接并选择“在新窗口中打开”。 |
· | 用户从文件菜单中选择新窗口。 |
· | 目标导航到尚不存在的框架名称。 |
您的浏览器应用程序也可以使用navOpenInNewWindow标志调用IWebBrowser2接口的导航或Navigate2方法来触发此事件。WebBrowser控件有机会处理新的窗口创建本身。如果没有,则将顶级Internet Explorer窗口创建为单独(非主机)进程。
处理此通知的应用程序可以通过以下三种方式之一进行响应:
· | 创建ppDispco中返回的新的,隐藏的,非营销的WebBrowser或InternetExplorer对象。从此事件返回后,触发此事件的对象将会将新对象配置和导航(包括BeforeNavigate2事件)到目标位置。 |
· | 通过将bCancel设置为VARIANT_TRUE来取消导航。 |
· | 不执行任何操作,不要将ppDispco设置为任何值。这将导致触发事件的对象创建一个新的InternetExplorer对象来处理导航。 |