1

在 Wicket 6 中工作。我的页面在 html 中包含对第三方库的 javascript 引用。我有一个额外的标准实用程序块,我通过 JavaScriptHeaderItem 包含在自定义组件的 Behavior 类中的 renderHead 中。

现在,同一个组件需要内联编写一些特定的 javascript 代码来调用这两个包含的方法。问题是代码在加载这些包含中的简单变量之前就已经运行了。Wicket 将两者都放在标题中的第 3 方库之上。

我想在正文中的标签中呈现代码,以确保在我的代码运行之前两者都至少已加载。第三方库有一个 DomReady 事件,但这至少需要定义基本变量。

我收集到我打算以某种方式使用 FilteringHeaderResponse 或 HeaderResponseContainer,但是示例/javadocs对我来说不是很清楚。假设我的内联 javascript 本来是:

String js = "alert('Hello '" + 用户名 + ");";

来自java。不是,它比这更复杂,但如果是,我将如何从 FormComponentPanel 呈现这个内联 javascript?以及如何动态包含我的自定义 js,但确保它呈现在标题中的第 3 方 js 以下,但在我的内联脚本运行之前?

4

2 回答 2

1

我最终使用:

response.render(OnDomReadyHeaderItem.forScript(writeGridJS()));

于 2014-01-29T15:06:38.510 回答
0

将您的 js 放入 my.js 之类的文件中,并将其设为ResourceReference. 然后将您的代码所依赖的库作为依赖项添加到 thisResourceReference中。在这里,您有两个很好的链接:

http://wicketinaction.com/2012/07/wicket-6-resource-management/

http://wicket.apache.org/guide/guide/chapter14.html#chapter14_5

于 2014-01-27T16:36:37.103 回答