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

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

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

  1. 如果我打开一个窗口然后关闭它我会收到CRM错误。
  2. 如果我按下CRM窗口中的保存并关闭按钮,它会保存但不会关闭。
  3. 有解决方法吗?

有帮助吗?

解决方案

你可以做一些像使用基本的javascript window.opener调用。

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

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

DoSomeFunction()是第1页中定义的javascript函数。您可以使用PageMethod或__doPostBack()调用。我没有机会在MS CRM中尝试这个,但理论上这种方法可能有用。

关于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

其他提示

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

很抱歉,如果我不完全了解您想要完成的任务,但我无法完全看清您的描述。也许一个简单的草图/绘图会有帮助吗?

我现在正在与Dynamics CRM合作,我很乐意提供帮助,因为我们遇到了各种各样的问题,并且不得不发明许多变通方法。很高兴分享。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top