2013-03-11 19 views
-2

在我的Silverlight應用程序中,我有一個WebBrowser組件顯示隨機HTML內容。從Silverlight託管的WebBrowser的javascript調用C#方法

我想從那裏調用C#方法(例如,當我點擊[a href ...]鏈接時)。

編輯[添加詳細信息]:

我會盡力澄清我的問題,對不起,我最初的問題不好問:

在我的XAML文件,我有我的網頁瀏覽器組件:

<WebBrowser x:Name="HtmlMail" Grid.Row="1" Visibility="{Binding Visibility}" /> 

在後面的代碼,我有在web瀏覽器加載的HTML(HTML是從外部源)的方法:

void _viewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) 
{ 
string encoded = SilverMUT.Common.Tools.CString.ToHtml(_viewModel.MailSelected.Message); 
HtmlMail.NavigateToString(encoded); 
} 

我想要做的是添加例如一個按鈕到html視圖(這部分是確定的),並點擊按鈕觸發一個C#函數。

編輯:如果我能捕捉上的鏈接點擊是來自web瀏覽器中,並在代碼中處理在他們身後,這將是確定太

我已經嘗試:System.Windows.Navigation.LoadCompletedEventHandler但可以「T使其工作

+0

[也許這是使用],我發現(http://stackoverflow.com/questions/8800764/how-to-intercept-when-user-click-on-a-link-in-a-webbrowser),我發現它通過做谷歌搜索 - 我建議你學會自己做 – musefan 2013-03-11 16:20:00

+2

不知道SL,但從表單應用程序,你可以使用objectforscripting + window.external; http://msdn.microsoft.com/en-us/library/a0746166.aspx – 2013-03-11 16:20:07

+0

請澄清,如果你想調用主機的方法(可能亞歷克斯K建議會工作)或服務器端代碼。 (也是我改變了標題 - 隨時恢復) – 2013-03-11 16:28:18

回答

0

我用下面的代碼:

WebBrowser.ScriptNotify + =新 事件處理程序(WebBrowser_ScriptNotify);

而在我添加的JavaScript:

window.external.notify(PARAM);

謝謝@musefan!