【问题标题】:openStdDlg returning null in ChromeopenStdDlg 在 Chrome 中返回 null
【发布时间】:2017-01-30 14:46:40
【问题描述】:

我一直在使用openStdDlg 方法在 Dynamics CRM 中打开查找视图。问题是当用户在查找中选择一条记录并按 OK 但在 IE 中正常工作时,此方法在 Chrome 中返回 null。我有 Dynamics CRM 2016 On-premises v8.1.0.359。

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

任何提示/想法如何解决这个问题?

【问题讨论】:

  • 尝试使用openStdWin,在 IE 和 Chrome 上都可以使用。

标签: javascript dynamics-crm dynamics-crm-2016


【解决方案1】:

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

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

【讨论】:

  • 谢谢,这行得通。非常需要跨浏览器兼容且易于查找的标准化方法。我希望微软的人能听听。
  • @A.K 完全同意。上面的方法不受支持(因此您需要验证它在升级后是否仍然有效),但它是我们目前最接近 CRM 使用的 UI 范例,用于替代“模态”对话框。
猜你喜欢
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 2022-06-14
  • 1970-01-01
相关资源
最近更新 更多