2017-01-30 17 views
0

Я использовал openStdDlg метод для открытия просмотра в Dynamics CRM. Проблема в том, что этот метод возвращает null в Chrome, когда пользователь выбирает запись в поиске и нажимает OK, но работает нормально в IE. У меня есть Dynamics CRM 2016 On-premise v8.1.0.359.openStdDlg возвращает null в Chrome

return openStdDlg(oUrl, wndArgs, width, height, true); 

Любые советы/идеи, как обойти эту проблему?

+0

Попробуйте использовать 'openStdWin', работает как на IE, так и на Chrome. – dynamicallyCRM

ответ

0

Если вы копаете в функцию openStdDlg, вы можете найти ее, используя showModalDialog (не уверен, что она), которая была removed from Chrome a while back.

Альтернативный неподдерживаемый способ, который должен работать, - Mscrm.CrmDialog. Таким образом, вы можете попробовать что-то вроде:

var dialogWidth = 500; 
var dialogHeight = 500; 
//replace with your lookup dialog URL 
var lookupDialogUrl = Xrm.Page.context.getClientUrl() + "/_controls/lookup/lookupinfo.aspx?AllowFilterOff=0&..."; 
var callbackRef = function(r){alert(r)}; 
//instantiate dialog 
var dialogWindow = new window.top.Mscrm.CrmDialog(Mscrm.CrmUri.create(lookupDialogUrl), window, dialogWidth, dialogHeight); 
//set callback to execute when selection is made and dialog closes 
dialogWindow.setCallbackReference(callbackRef); 
dialogWindow.show(); 

выше запустит диалог подстановок (как только вы заполнить в остальной части пути поиска), а затем в обратном вызове вы можете использовать результат в диалоговом окне поиска какой вы необходимость.

+0

Спасибо, это сработало. Существует высокая потребность в стандартизированных методах, которые совместимы с кросс-браузером и их легко найти. Надеюсь, кто-то из Microsoft прислушается к этому. –

+0

@ A.K Полностью согласен. Вышеописанный метод не поддерживается (так что вы захотите проверить его по-прежнему после обновления), но это самая близкая вещь, которую мы имеем в настоящее время для парадигмы пользовательского интерфейса. CRM использует всевозможные «модальные» диалоги. –