1

如图所示,我已将 jQuery 包添加到表单中。

在此处输入图像描述

这是具有最新界面的最新更新。

我如何收到以下错误消息。

ReferenceError: '$' 在 temp ( https://xxxx.crm4.dynamics.com/%7B635678213980001086%7D/WebResources/xxxx_Temp.js?ver=1543403284:4:5 )未定义

不起作用的“代码”是这样的。

function temp() { $.ajax({...}); }

请注意,实际呈现 HTML 的代码并非作为可在 CRM 中编辑的源代码。

我试过通过控制台访问它,除了我是初学者而且我迷路之外,它似乎还可以工作。不确定要搜索哪些关键字。

4

3 回答 3

3

您依赖于 3rd-party JQuery 文件,这可能是您的问题。我不确定,但微软可能会.noConflict()在那个库中做一个,这样$它就不是对 JQuery 的引用。

Microsoft 的文档特别建议不要在表单事件中使用 JQuery。

我们不建议在表单脚本和功能区命令中使用 jQuery。jQuery 提供的大部分好处是它允许对 DOM 进行轻松的跨浏览器操作。这在表单脚本和功能区命令中是明确不支持的。限制您的脚本使用表单脚本和功能区命令中可用的 Xrm.Page 和 Xrm.Utility 库。

您不需要使用$.ajax()

支持使用 $.ajax 对 OData 和 Modern Apps SOAP 端点执行请求,但还有其他选择。使用 $.ajax 的替代方法是直接使用浏览器 XMLHttpRequest 对象。jQuery $.ajax 方法只是这个对象的一个​​包装器。如果直接使用原生 XMLHttpRequest 对象,则不需要加载 jQuery。

如果您想避免所有故障排除,请使用已经解决了这些问题甚至更多问题的可靠解决方案。我建议查看XrmServiceToolkit,它包含自己的 JQuery 副本并针对 Dynamics CRM 2015 进行了全面测试。

无论如何,您当然不应该依赖活动提要解决方案中的 JQuery 库。

于 2015-05-21T18:35:32.763 回答
2

由于MSDN 本身提供了使用jQuery 和使用 jQuery的 JavaScript 通过组织服务检索数据的示例,因此很容易误导人们认为它们同样适用。

阅读时它会变得更加误导......使用 $.ajax 对 OData 执行请求,并且支持现代应用程序 SOAP 端点......,如果读者停在那里并且不投资于审查整个段落。

然而,微软似乎打算不鼓励使用 jQuery(在我看来这是一种行业标准),并将我们推向 XmlHttp(IM-not-so-HO 在语法上既丑陋,而且名称非常混乱)。

这或许可以解释为什么最新组织中预装的 jQuery 版本是 1.5,而自 2011 年以来较旧的组织预装的是 1.7。

所以有两种选择来处理它。

  1. 手动安装最新的 jQuery。
  2. 适应 XmlHttp 的展开方式。

(1) 具有比只是小型 CRM 池塘更广泛的解决方案的优势。它还赋予了使用旧版本以及绝对不受支持的版本的更多能力。如果需要应用 iframe 或自定义与 CRM 集成的门户,jQuery 是必须知道的。

(2)具有被微软推荐的优势。噗。

于 2015-05-21T20:59:13.817 回答
2

这只发生在 Crm 2015 在线环境中。

我已将 Xrm Service Toolkit 中的 1.7.2 版添加为表单上的第一个库,但仍然无法识别简单的“$”(加载第二个库会添加一个在显示期间使用的 css在更改事件上弹出一个 JQuery 对话框):

$(document).ready(function () {
    $("<link/>", { rel: "stylesheet", type: "text/css", href: Xrm.Page.context.getClientUrl() + "/WebResources/tss_duplicatepopupcss" }).appendTo("head");
}
于 2015-05-27T14:51:55.540 回答