当前位置:  开发笔记 > 编程语言 > 正文

试图避免在Domino XPage中多次调用jQuery

如何解决《试图避免在DominoXPage中多次调用jQuery》经验,为你挑选了1个好方法。

我试图在简单的Domino XPage上使用jQuery 的' DataTables '表插件.

我从CDN加载了两个必需的库...

JQuery:ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js

DataTables:cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css

我也尝试从本地资源加载它们(没有帮助).

然后我在XPage上准备一个基本表,并包含必要的Javascript来初始化表...

$(document).ready(function() {
    $('#tableID').DataTable();
} );

当我测试XPage时,我会不断观察

test.xsp:15 Uncaught TypeError: $(...).DataTable is not a function

我搜索了几个论坛,普遍的共识是......

a)我以错误的顺序加载了库(不!)

b)我不止一次加载jQuery(如何?)

我有很多其他使用Bootstrap和jQuery的解决方案,之前从未遇到过这个问题.所以,我虽然可能会将XPage剥离回骨架.我通过在'xp.properties'文件中添加以下行来删除页面上的所有Dojo元素...

xsp.client.script.libraries=none

这实际上似乎工作!我不再观察到错误.但是,我的页面看起来不再适合(显而易见的原因!).我不得不将'xp.properties'文件恢复到原始状态,但无法找到如何避免错误.

有没有人在XPage上成功使用过'DataTables'的jQuery插件?任何反馈或建议将非常感谢!



1> Cameron Greg..:

是的,我在XPages中对DataTables做了很多工作,所以它绝对有效!我知道你的痛苦....你的jquery脚本相对于彼此的顺序可能没问题,但是与dojo冲突并且它是AMD加载器,所以你有3个选项.

选项1.在任何xpages脚本之前加载jquery脚本

选项2.在jquery脚本之前删除'amd loader',然后在之后恢复它

选项3.修改数据表的javascript,使其忽略amd问题

选项1:首先加载jQuery脚本

如果您正在使用资源聚合,您可以使用Sven Hasselbach博客中的这个提示,其中您使用通用的"headTag"资源标记,它将首先加载. http://hasselba.ch/blog/?p=1181

如果你想要一个无论资源聚合设置如何都能工作的解决方案,我在我的博客上有一个例子,你可以在其中创建一个viewRootRenderer,然后你可以指定你希望在其他所有内容之前加载脚本 http:// camerongregor. COM/2016/09/19 /控制-的阶的脚本资源-例如,jQuery的用-A-定制viewrootrenderer /

选项2.在加载脚本之前删除AMD加载程序

有一个xsnippet解释了如何删除然后恢复amd加载器,以便jquery插件将加载 https://openntf.org/xsnippets.nsf/snippet.xsp?id=hack-to-use-jquery-amd-部件和-道场在一起

Sven已经在我的上面做了一个类似的解决方案(viewRootRenderer),你可以在其中指定哪些脚本需要禁用amd加载器,它会为你做这个,它可以在这里找到 http://hasselba.ch/blog/?p = 2070

选项3:修改jquery插件的javascript(datatables)

马克罗登在他的博客上证明了这一点.我真的不喜欢这样做但嘿它有效! https://xomino.com/category/jquery-in-xpages/

如果有任何效果,请告诉我!我希望我是对的,用javascript我从来不知道......

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有