不建议使用方法Xrm.Utility.openDialog()
,但是我找不到有关此方法的任何信息,以及此方法的替代方法?
您能帮我找到openDialog()
的替代方法吗?
答案 0 :(得分:1)
据我所知,从来没有一个叫做Xrm.Utility.openDialog()
的函数。
几年前,开发人员使用window.showModalDialog()
从Dynamics CRM中打开自定义模式窗口。但是,像Chrome这样的流行浏览器不再支持此功能,而该功能无论如何都是IE发明的。模态对话框会阻止用户访问主打开窗口,并损害平板电脑和智能手机界面上的用户体验,因此,如今,它们已被视为一种糟糕的设计选择。
作为替代方案,一些Dynamics CRM开发人员开始使用内部功能Xrm.Internal.openDialog()
。但是,此功能从未成为受支持的API的一部分,因此不应使用。
一种替代方法是在页面正文的末尾插入een IFrame并在其中显示对话框。这是当前实现内置Dynamics CRM对话框的方式。
答案 1 :(得分:1)
Microsoft告诉我必须使用Xrm.Utility.openWebResource()方法。 谢谢
答案 2 :(得分:0)
我们有一个自定义功能区按钮,可使用JavaScript按需运行对话框。这是您可能会发现有用的代码段。我们不使用.openDialog()
。
window.open(
Xrm.Page.context.getClientUrl() + "/cs/dialog/rundialog.aspx?DialogId="
+ encodeURIComponent(DIALOG_ID)
+ "&EntityName=new_entityname&ObjectId=" + encodeURIComponent(ENTITY_ID),
"formRibbon_runDialog_" + DIALOG_ID + "_" + ENTITY_ID,
"height=480, width=615"
);
值得注意的是,一般而言,Dialogs已被Microsoft弃用,但要真正从系统中删除它们可能要花费很多年,因此不必担心。
如果您有任何疑问,请告诉我。