javascript - openStdDlg 在 Chrome 中返回 null

标签 javascript dynamics-crm dynamics-crm-2016

我一直在使用 openStdDlg 方法在 Dynamics CRM 中打开查找 View 。问题是,当用户在查找中选择一条记录并按“确定”时,此方法在 Chrome 中返回 null,但在 IE 中正常工作。我有 Dynamics CRM 2016 本地 v8.1.0.359。

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

有什么技巧/想法可以解决这个问题吗?

最佳答案

如果您深入研究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();

上面将启动一个查找对话框(一旦您填写了查找路径的其余部分),然后在回调中您可以使用查找对话框中的结果来满足您的需要。

关于javascript - openStdDlg 在 Chrome 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41938706/

相关文章:

javascript - 如何将 Date.now() 的结果转换为 yyyy/MM/dd hh :mm:ss ffff?

javascript - Express-mysql-session 防止 Passport 反序列化用户运行

javascript - 为什么 Node.removeChild(Old Child) 在函数中不起作用?

Javascript OAuth 和 Opera 链接

dynamics-crm-2011 - Dynamics CRM Email实体是Reply,是Forward 2013/2015的替代品吗?

dynamics-crm-2011 - 在 CRM 2011 中保存表单后调用 javascript 函数

javascript - D365 JavaScript 使用查找、选项集和货币字段创建新记录

dynamics-crm - MS Dynamics CRM 中电子邮件实体的奇怪自定义行为

c# - 抓取用户列表存在于 dynamics crm 中的关系中