2012-08-30 25 views
0

內的另一個Web瀏覽器控件我有一個包含許多鏈接和數據網絡瀏覽器控制。所有這些數據都來自Web服務。WP7打開網頁broser控制

現在我想打開另一個當我點擊第一個網頁鏈接broser Web瀏覽器控件。 那怎麼辦呢?

我的第一個網頁broser代碼:

webBrowser1.NavigateToString(htmlCode); 
+0

看看我的詳細解答這個鏈接您的其他問題:http://stackoverflow.com/questions/12194598/handle-web-browser-link-event-in-wp7或者我已經張貼在這裏同樣的答案,因爲你的問題是一樣的,如果他們回答你的問題,請接受他們。 –

回答

1

你可以有另一種web瀏覽器webBrowser1下隱藏。我們稱之爲webBrowser2。現在,當用戶點擊webBrowser1上的鏈接時,將其捕獲一個字符串可以說爲link。現在,您可以使用webBrowser2.Navigate(new Uri(link,UriKind.Absolute));導航到link。不要忘記讓webBrowser1隱藏並且webBrowser2可見。

1

如果我瞭解你,你想在第一個WB控件(稱爲WB1)中攔截onClick事件,並在另一個WB控件(稱爲WB2)中打開該頁面(當超鏈接被點擊時)?

有幾種方法可以做到這一點,是這樣的鏈接設置爲在新窗口中打開?如果是這樣,您可以截獲NewWindow2事件是WB1並在WB1的NewWindow2事件中運行以下代碼... 設置pDisp = WB2.object

(它可能是ppDisp而不是pDisp,但會顯示當你的事件是自動生成的,選擇你的參數列表中顯示的任何對象名稱)。

否則,您可以在WB1事件的BeforeNavigate2事件期間攔截此請求,檢查URL屬性是否是您感興趣的鏈接,如果是,請取消當前請求並重新發出新請求,如下所示。 ..(在WB1 BN2事件)... 取消= TRUE'這將取消請求 WB2.Navigate2 URL, 「YourWB2sDocumentNameOrTargetFrameNameGoesHere」 的代碼

第二行只是重新發出請求。

當然,YourWB2sDocumentNameOrTargetFrameNameGoesHere是您的WB2控件/窗口中的TargetFrameName(或頂級文檔的框架或文檔名稱,或任何iframe)。這通常可以在BODY標籤名稱=屬性被發現,但你甚至不需要這樣做,如果你想要的是將其加載爲WB2頂層文件...如果你只是想將其加載爲父頂層文件WB2,只是這樣做...... 取消=真 WB2.Navigate2 URL

通過參考WB2它將只發送相同的URL請求WB2窗口取消WB1請求後。

讓我知道如果你需要更多的幫助,讓我知道你是怎麼相處的。