Получите всплывающие окна CRM для обновления открывающегося окна

StackOverflow https://stackoverflow.com/questions/400834

Вопрос

Я загружаю окно Microsoft CRM 4.0 со страницы интрасети, используя window.open(...).

Когда окно закрывается, мне нужно, чтобы оно программно нажимало кнопку на странице, которая его открыла.Я могу сделать это из своей формы, получив кнопку (имя которой передается в строке запроса) и выполнив ее метод щелчка в JavaScript.

Я подумал, что могу попробовать открыть собственное окно с помощью iframe, содержащего страницу CRM, как я делаю это с другими веб-системами в нашей интрасети.Затем на странице я могу нажать кнопку в событии onunload страницы.Однако, хотя это работает для большинства наших систем, с CRM у меня возникают две проблемы.

  1. Если я открою окно, а затем просто закрою его, я получу ошибку CRM.
  2. Если я нажму кнопку «Сохранить и закрыть» в окне CRM, она сохранится, но не закроется.

Есть ли решение для этого?

Это было полезно?

Решение

Вы можете сделать что-то вроде использования базового вызова javascript window.opener.

Страница 1 открывает окно CRM.В OnSave этого окна CRM вы вызываете что-то вроде этого:

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

Где DoSomeFunction() — это определенная функция JavaScript на странице 1.Вы можете использовать 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

Другие советы

Разве ошибки не вызваны предотвращением межсайтового скриптинга?Если приложение интрасети и CRM не находятся на одном сервере, пересылка данных между ними крайне затруднительна.

Извините, если я не совсем понимаю, чего вы хотите достичь, но я не могу полностью визуализировать ваше описание.Может быть, поможет простой эскиз/рисунок?

В данный момент я сам работаю с Dynamics CRM и рад помочь, поскольку мы сталкивались с множеством проблем, связанных с этим, и нам приходилось изобретать множество обходных решений.Рад поделиться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top