【问题标题】:Communication from silverlight to winforms via webbrowser通过 webbrowser 从 silverlight 到 winforms 的通信
【发布时间】:2012-05-04 21:52:00
【问题描述】:

我正在尝试通过 Winforms 应用程序将 JSON 字符串发送到我的 Silverlight 应用程序。

我已经尝试了几次通过使用我的 silverlight 方法来完成它

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

在javascript中

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

但由于某种原因,我无法使用 javascript 进行这项工作。它只是没有被调用。

在 Winforms 中

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

我是不是做错了什么?

【问题讨论】:

  • 一切正常。你确定你的silverlight控制ID是正确的吗?您是否在网络浏览器中收到任何 JS 错误?
  • 你设置WebBrowser.IsScriptEnabled = true了吗?
  • 约翰·科尔纳: ColinE,IsScriptEnabled 不存在。
  • 我再次尝试了,我将我的“测试”方法放在 DocumentCompleted 事件中,而不是直接在开始时,它在首先给出错误消息后现在可以工作。错误消息仅告诉我“此页面上的脚本发生错误。第 56 行”和其他一些内容,但没有告诉我是什么错误。 “未指定的错误,代码 0”。

标签: c# winforms silverlight webbrowser-control


【解决方案1】:

我注意到,当我构建项目时,Silverlight 创建的文本页面会被写入。

由于这是我的网络浏览器向其发布 javascript 命令的 html 页面,因此这些命令从未到达 silverlight 控件。

使用 javascript 命令创建一个单独的页面后,它运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多