2009-09-22 66 views
1

我把IWebBrowser2 ctrl嵌入到我自己的對話框中。我想簡單地 從我的網址顯示一個促銷橫幅。如何從控件中禁用所有彈出菜單 菜單項並強制它在新窗口中打開鏈接 (當前當我點擊橫幅中的鏈接時,它正在同一控件中打開 )。 問候 多米尼克IWebBrowser2問題 - 如何在新窗口中打開文檔?

回答

2

看一看下面的文章:

WebBrowser Customization

+0

MSDN文章是一個很好的資源,但它不回答這個問題。 MSDN解釋如何*防止*新窗口,但不是如何強制打開新窗口。文檔暗示可以通過掛鉤DISPID_BEFORENAVIGATE2事件來完成此操作,但該事件沒有足夠的上下文來區分用戶單擊基於腳本的活動的鏈接。例如,如果您加載amazon.com,則初始頁面加載將觸發一系列其他請求,這些請求會導致它們自己的BeforeNavigate事件。 – 2010-05-25 21:29:35

2

我不知道是否有這樣做的更便捷的方式 - 但你總是攔截BeforeExplorerNavigate2(),用不同的設定了參數取消爲true,並從那裏要麼做一個新Navigate()目標框架名稱或打開一個新窗口。

正如Rob指出的那樣,篩選出源自腳本的導航事件可能存在問題,請參閱this question

+0

如何爲IWebBrowser2的註冊事件?我只有IWebBrowser2對象。 – cubesoft 2009-09-22 15:59:10

+0

您實現了DWebBrowserEvents2並將其註冊爲事件接收器。 通過Remys的文章,你會發現NewWindow3()事件,它應該給你你所需要的。 – 2009-09-23 02:11:16

+0

好的。謝謝,我發現它雖然在WTL中並不像在MFC中那麼容易。 – cubesoft 2009-09-30 10:22:59