2

我正在尝试按照 IBM ( LINK ) 上的指南在 XPage 中开发我自己的 Java 自定义控件。

一切正常,但现在我想做一些我想使用 jQuery 库的客户端 JavaScript 事情。在 XPage 中包含 jQuery.js 并不是什么大问题,但我想将我的控件打包到一个库中,以便我们公司的每个开发人员都可以使用它。

所以我的问题是如何将 JavaScript 集成到控件中,这样使用它的人就不必在 Notes 应用程序中手动实现 JavaScript。

当然,我可以将其放入渲染中:

writer.startElement("script", null);
writer.writeAttribute("type", "text/javascript", null);
writer.writeText(JQuery-js-content, null);
writer.endElement("script");

但是,当用户打开包含控件的 XPage 时,服务器必须始终呈现它。

从 Web 或服务器加载 jQuery 是没有选择的(防火墙)。

每当开发人员将组件从 jQuery 添加到 Notes 应用程序的面板中拖动时,我正在寻找的解决方案。

更新:

感谢您的提示,我找到了“最适合我”的解决方案。我使用ExtLibResources扩展库中的类com.ibm.xsp.extlib.resources.ExtLibResources来包含我的脚本库。使用这种方法,当您在同一个 XPage 上使用多个我的控件时,它们不会被包含多次。

如果您不想使用扩展库,但想使用此方法在自定义控件中包含 CSJS,则可以构建自己的资源类。

现在我包含 jQuery 的代码如下所示:

ScriptResource jquerymin = new ScriptResource();
jquerymin.setType("text/javascript");
jquerymin.setSrc(JQUERY_PATH);
jquerymin.setClientSide(true);
ExtLibResources.addEncodeResource(context, jquerymin);
4

2 回答 2

2

在 OpenNTF 上查看这个项目。一个 jQuery 分机。图书馆。我怀疑这是你需要做的。

http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=jQuery%20Extension%20Library

于 2013-03-27T18:15:19.427 回答
0

除了自己添加库之外,难道不能使用 CDN 添加 jquery 库吗?

于 2013-03-28T08:38:40.180 回答