0

我开发了一个从 CRM 表单启动的 silverlight 应用程序。表单有一个字段,在该字段的 OnChange 事件中,它调用 window.open 打开一个 HTML Web 资源:

window.open(serverUrl + "")...

HTML Web 资源包含一个嵌入 silverlight 控件的 iframe。

silverlight 控件有一个“保存数据”按钮,可将数据保存回 CRM 表单。这在我的开发 PC 上一切正常,但是,在其他 PC 上,数据不会保存回 CRM。

我放了调试消息,Xrm 对象为空。在 silverlight 代码中,我通过以下方式访问 Xrm 对象:

HtmlPage.Window.Eval("document.parentWindow.opener.Xrm") as ScriptObject;

这适用于我的开发PC,但不适用于其他PC,有人知道为什么会这样吗?这是权限问题还是浏览器设置问题?

当silverlight控件打开时,我还尝试在另一台PC上的IE开发工具脚本窗口中运行“document.parentWindow.opener.Xrm”,我可以看到DOM对象好吗?

问候,

杰瑞

4

1 回答 1

0

看来我必须直接在 silverlight 中获取 Xrm 对象才能在 IE9 中工作:

window = HtmlPage.Window.Eval("document.parentWindow.opener.Xrm") as ScriptObject;

这似乎不适用于 IE9,仅适用于 IE8:

window = HtmlPage.Window.Eval("document.parentWindow.opener") as ScriptObject;

xrmObject = window.GetProperty("Xrm") as ScriptObject;

于 2013-08-28T22:27:30.383 回答