0

我正在使用 window.open(...) 从 Intranet 页面加载 Microsoft CRM 4.0 窗口。

当窗口关闭时,我需要它以编程方式按下打开它的页面上的按钮。我可以通过获取按钮(其名称在查询字符串中传递)并在 JavaScript 中执行其 click 方法,从我自己的表单中做到这一点。

我想我可以尝试使用包含 CRM 页面的 iframe 打开我自己的窗口,就像我在 Intranet 上使用其他基于 Web 的系统一样。在页面中,我可以单击页面的 onunload 事件中的按钮。然而,尽管这适用于我们的大多数系统,但使用 CRM 我遇到了两个问题。

  1. 如果我打开一个窗口然后简单地关闭它,我会收到 CRM 错误。
  2. 如果我在 CRM 窗口中按下保存并关闭按钮,它会保存但不会关闭。

有解决方案吗?

4

2 回答 2

1

你可以做一些事情,比如使用一个基本的 javascript window.opener 调用。

第 1 页打开 CRM 窗口。在该 CRM 窗口的 OnSave 中,您可以这样调用:

if(window.opener.DoSomeFunction != null)
  {
     window.opener.DoSomeFunction;
  }

Where DoSomeFunction() is a defined javascript function in Page 1. The you could use a PageMethod or a __doPostBack() call. I haven't had a chance to try this inside MS CRM but in theory this approach might work.

Reference on javascript window.opener:

http://www.dotnetspider.com/resources/22146-How-call-parent-page-javascript-function-from-popup-window.aspx

http://www.webreference.com/js/tutorial1/opener.html

于 2009-01-06T04:32:44.307 回答
0

不就是防止跨站脚本造成的错误吗?除非 Intranet 应用程序和 CRM 驻留在同一台服务器上,否则在它们之间来回发送数据非常困难。

抱歉,如果我不完全理解您想要完成的工作,但我无法完全想象您的描述。也许一个简单的草图/绘图会有所帮助?

我自己目前正在使用 Dynamics CRM,并且很乐意提供帮助,因为我们遇到了各种各样的问题并且不得不发明许多解决方法。乐于分享。

于 2008-12-31T10:15:43.503 回答