2016-11-23 18 views
0

我有一个在功能区命令中启动的脚本,以便执行操作,但它是用简单的javascript编写的。正如我想改进它,我想用JQuery来代替。该脚本位于解决方案中上传的解决方案中,我应该在解决方案中添加jquery文件吗?我如何使用它?动态CRM - 如何在JavaScript Web资源中使用JQuery

+0

正在运行的功能区按钮的上下文是什么?它是在形式上还是在视图中?答案会根据您的回答而有所不同。 – hack3rfx

+1

https://msdn.microsoft.com/en-us/library/hh771584.aspx#BKMK_UsingjQuery> **避免在表单脚本或功能区命令中使用jQuery **>我们不建议在表单脚本和功能区命令中使用jQuery。 > jQuery提供的大部分好处是,它允许轻松跨浏览器操作DOM。这在表单脚本和功能区命令中明确不支持。限制脚本使用表单脚本和功能区命令中提供的Xrm.Page和Xrm.Utility库。 – mktange

+0

谢谢,但它不回答我的问题.... –

回答

5

您应该能够访问的jQuery像这样(你没有提到你的版本,这部作品在2016)

$ = ($ || parent.$); 
+1

澄清:CRM是用jQuery制作的,所以如果JS网站资源需要它,就不需要再包含它,它已经存在并且可以使用 – Alex

2

添加jQuery库到CRM

  1. 你可以从http://jquery.com/下载JQuery的最新版本。

    1. 下载完JQuery之后,您需要将其作为JScript Web资源添加到CRM中。
    2. 打开您的解决方案或打开默认解决方案,方法是转到设置>自定义>自定义系统。
    3. 输入名称并选择类型:脚本(JScript)。我建议还在描述中输入JQuery文件名,以便知道安装了哪个版本。

    4. 单击浏览并选择刚刚下载的JQuery文件。

    5. 保存并发布新的Web资源。

    6. 您现在可以将JQuery库添加到您的表单中,以便您可以从其他Web资源中使用它。
2

所有的答案是正确的,到目前为止,但我想补充我的投入。

对于初学者,我们可能会触及一些不受支持的定制,但这不是问题。

如果您在视图的上下文中运行脚本,则不能直接添加jquery。完成此操作的唯一方法是通过原始脚本将文件作为资源url中的对象加载并附加到页面的头部。然后有一个等待执行剩余脚本的负载。这显然超出了它应该是的,我建议反对它。在这种情况下,最好放弃jquery。

最后,如果你正在窗体的上下文中运行它(在窗体上),你可以将jQuery作为普通脚本添加到实体的窗体中。根据您使用的表单渲染引擎,您可能需要执行Alex建议并设置$ = $ || parent.$;。如果使用更新版本中引入的新涡轮形式,则必须这样做。除此之外,你不应该从你的功能区使用它。

将JQuery添加到您的解决方案将其添加为资源。仅凭这一点,就无法让你随心所欲地执行它。

3

当你想使用jQuery在你的丝带命令,使100%肯定jQuery是可用的,你应该添加额外自定义操作在RibbonCommand其中发生以前实际的自定义操作中,你的JavaScript被定义为。

在此自定义操作中,您可以调用jQuery webresource(您还需要包含)的函数isNaN

假设你正在使用的色带工作台(这你应该,如果你不:-)),它是这样的:

enter image description here

使用这种方法能确定的jQuery将可用,无论您使用什么上下文(窗体,网格,子网格)。

如果您实际上没有像这样添加它,您需要依赖$ ||。父母$,在99%的情况下工作,但不能保证工作。 @Domenico提到的解决方案可以工作,但只有当按钮显示在表格上时,jQuery库才会在您的自定义代码之前加载。

相关问题