我正在尝试按照 IBM ( LINK ) 上的指南在 XPage 中开发自己的 Java 自定义控件。
一切工作正常,但现在我想做一些客户端 JavaScript 的事情,我想在其中使用 jQuery 库。在 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 时,服务器始终必须呈现它。
无法从网络或服务器加载 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);
最佳答案
在 OpenNTF 上查看这个项目。一个 jQuery 扩展。图书馆。我怀疑这就是您需要做的。
关于javascript - 如何将脚本库添加到 XPage 自定义 Java 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15663268/