使用 Wicket 6。我的页面在 html 中包含对第三方库的 javascript 引用。我有一个额外的标准实用程序 block ,我通过 JavaScriptHeaderItem 将其包含在自定义组件的Behavior 类的 renderHead 中。
现在,同一组件需要内联编写一些特定的 javascript 代码来调用这两个包含中的方法。问题是代码在加载这些包含中的简单变量之前就已经运行了。 Wicket 将两者都放在 header 中的第 3 方库上方。
我想在正文中的标记中呈现代码,以确保两者至少在我的代码运行之前已加载。第三方库有DomReady事件,但这至少需要定义基本变量。
我认为我应该以某种方式使用 FilteringHeaderResponse 或 HeaderResponseContainer,但示例/javadocs 对我来说不是很清楚。假设我的内联 JavaScript 应该是:
String js = "alert('你好'"+ 用户名 + ");";
来自java。事实并非如此,它比这更复杂,但如果是的话,我将如何从 FormComponentPanel 呈现此内联 javascript?如何动态包含我的自定义 js,但确保它在 header 中的第 3 方 js 下方呈现,但在内联脚本运行之前?
最佳答案
我最终使用:
response.render(OnDomReadyHeaderItem.forScript(writeGridJS()));
关于 Wicket 口 6 : Write inline javascript to script tag in body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21382311/