XRM setDisable()不适用于IE以外的浏览器

时间:2013-03-21 04:49:00

标签: javascript google-chrome firefox dynamics-crm-2011 xrm

从IE以外的浏览器打开时,我们的XRM表单上有错误。您可以在图片链接上看到无用的消息。

enter image description here

错误不清楚所以我调试了它,它导致我在页面加载的javascript函数上出错。 它无法正确使用XRM setDisabled()函数:

Xrm.Page.getControl("simpeg_tipelokasi").setDisabled(true);

在IE上它可以正常运行并且该字段被禁用,但奇怪的是它在Chrome和Firefox上不起作用。你能帮我弄清楚为什么它不能在这些浏览器上运行吗?非常感谢!

修改

我的不好,实际上这是两个浏览器的ActiveX配置和setDisabled函数中的问题。在调试前一段时间我一定错过了它。 请参阅此网址上的新帖子: Alternative to XRM Javascript calling webservice using ActiveX

3 个答案:

答案 0 :(得分:2)

尝试使用XrmServiceToolKit新版本,该版本应支持跨浏览器兼容性:

http://xrmservicetoolkit.codeplex.com/

答案 1 :(得分:2)

如果您目前不在Rollup 12上,则Chrome不会正式支持。

如果可以的话,我会尝试升级以获得通过Rollup 12提供的新的跨浏览器支持。请务必查看code validation tool以确保您的代码和自定义项没有任何问题。

如果这不是一个选项,那么您可以尝试xrmservicetoolkit这是一个CRM JavaScript库。

答案 2 :(得分:1)

您需要将组织的汇总更新至至少12(目前最新)。不过,我很惊讶你实际上得到了错误。使用不受支持的浏览器时,您无法登录并显示“主”表单。

编辑:

绝对不是RU12和浏览器品牌的问题。我刚刚创建了一个新组织,并通过Web资源添加了以下功能。

function disableFullNameOnLoad(){
  Xrm.Page.getControl("fullname").setDisabled(true);
  alert("Full name disabled on load.");
}

function enableFullNameOnSave(){
  Xrm.Page.getControl("fullname").setDisabled(false);
  alert("Full name enabled on save.");
}

正如命名法所暗示的那样,禁用是以 onload 的形式执行的,并在其 onsave 中启用。我使用FF,IE和Cr​​进入CRM(RU12,OP)。当我保存表单时,行为是一致的 - 灰色的全名,当我打开表单时,可编辑的

因此,无论您的平台上出现什么问题,它都与跨浏览器不兼容性无直接关系。当你添加我的示例中的确切代码时,你能再次检查IE和FF之间的行为差​​异吗,请按照我描述的方式连接事件。