我正在尝试按照IBM(LINK)上的指南在XPage中开发自己的Java自定义控件。
一切正常但现在我想做一些我想使用jQuery库的客户端JavaScript。在XPage中包含jQuery.js不是很多,但我想将我的控件打包在一个库中,以便我们公司的每个开发人员都可以使用它。
所以我的问题是我如何将JavaScript集成到控件中,以便使用它的人不必手动在Notes Application中实现JavaScript。
当然,我可以把它放到渲染中:
writer.startElement("script", null);
writer.writeAttribute("type", "text/javascript", null);
writer.writeText(JQuery-js-content, null);
writer.endElement("script");
但是当用户打开包含控件的XPage时,服务器总是会呈现它。
从网络或服务器加载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);
答案 0 :(得分:2)
在OpenNTF上查看此项目。一个jQuery Ext。图书馆。我怀疑这是你需要做的。
答案 1 :(得分:0)
不是自己添加库就不可能使用CDN添加jquery库吗?