Windows Phone 中WebBrowser開啟新視窗

l_serein發表於2013-01-22

Windows Phone 中自帶的WebBrowser目前不支援開啟新的視窗,即你點選頁面中帶有target="_blank"的超連結時不會開啟這個超連結,怎麼解決這個問題呢?

想法是:我們可以將頁面中所有的 target="_blank" 替換為 target="_self" ,這樣點選超連結的時候,就會在原來的WebBrowser中開啟這個連結了。

那麼如何實現?

有兩個想法:

1. 當網頁載入完畢後,將網頁的原始碼獲取到,然後替換這個string(這個會有點小問題的哦,think about 中文...)

2. 當網頁載入完畢後,呼叫JavaScript程式碼,用JS去實現替換

本文會簡單介紹第二種方法的實現,至於第一種,大家有興趣可以自己研究研究.

WebBrowser有一個屬性IsScriptEnabled ,當我們將其設為True時,我們可以在後置程式碼中呼叫前臺的js函式,程式碼如下:

webBrowser1.InvokeScript("test");
webBrowser1.InvokeScript("test2", "1");

引數為函式名,或者是函式名加引數。

於是我們就可以在網頁內容載入完畢的事件中使用這樣的方法,將target="_blank" 替換為 target="_self" ,具體的程式碼如下:

 

 這樣當網頁載入完畢後,原先頁面中的target="_blank" 都已經替換為 target="_self",這樣就可以正常點選超連結,然後在WebBrowser了

相關文章