2012-05-04 61 views
3

我想通過Winforms應用程序發送一個JSON字符串到我的Silverlight應用程序。通過webbrowser從silverlight到winforms的通信

我已經嘗試了幾次得到它通過使用暴露在javascript

HtmlPage.RegisterScriptableObject("Page", this); 
..... 
[ScriptableMember] 
public void CallMeInSilverlight(string message) 
{ 
    HtmlPage.Window.Alert("The form said: " + message); 
} 

function CallMe(message) { 
    var control = document.getElementById('silverlightControl'); 
    control.Content.Page.CallMeInSilverlight(message); 
}  

但出於某種原因,我不能使這項工作使用JavaScript我silverlight的方法來完成。它只是不會被調用。

中的WinForms

webBrowser1.Document.InvokeScript("CallMe", new object[] { "testing 1 2 3" }); 

我做錯什麼了嗎?

+0

這一切看起來不錯。你確定你的Silverlight控件ID是正確的嗎?你在網頁瀏覽器中收到任何JS錯誤嗎? –

+0

你設置了'WebBrowser.IsScriptEnabled = true'嗎? – ColinE

+0

John Koerner: ColinE,IsScriptEnabled不存在。 –

回答

0

我注意到當我構建我的項目時,由Silverlight創建的文本頁面會被寫入。

由於這是我的網頁瀏覽器發佈它的javascript命令的html頁面,所以這些命令從未到達過silverlight控件。

使用javascript命令創建單獨的頁面後,它完美地工作。