Wicket 6:将内联javascript写入正文中的脚本标记

Wicket 6:将内联javascript写入正文中的脚本标记,wicket,wicket-1.6,wicket-6,Wicket,Wicket 1.6,Wicket 6,在6号门工作。我的页面在html中包含一个指向第三方库的javascript引用。我有一个额外的标准UTIL块,我通过JavaScriptHeaderItem将其包含在自定义组件的行为类的renderHead中 现在,同一个组件需要内联编写一些特定的javascript代码来调用这两个包含中的方法。问题是,代码在加载这些包含中的简单变量之前就已经运行了。Wicket将两者都放在标题中第三方库的上方 我希望在主体内的标记中呈现代码,以确保在代码运行之前,两者至少都已加载。第三方库有一个DomRea

在6号门工作。我的页面在html中包含一个指向第三方库的javascript引用。我有一个额外的标准UTIL块,我通过JavaScriptHeaderItem将其包含在自定义组件的行为类的renderHead中

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

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

我想我应该以某种方式使用FilteringHeaderResponse或HeaderResponseContainer,但是示例/javadocs对我来说不是很清楚。假设我的内联javascript是:

String js=“警报('Hello'+userName+”)”


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

将您的js放入类似my.js的文件中,并使其成为
资源引用。然后将代码所依赖的库作为依赖项添加到此
ResourceReference
。这里有两个很好的链接:

我最终使用了:


render(OnDomReadyHeaderItem.forScript(writeGridJS())

不太可行,因为JS是高度动态的。我有一个文件中的静态内容。