I am writing a web app using HTML and Wicket.
In my HTML page, I have a small alert script and I need that the wicket will insert a value to the message of the alert. My code is:
HTML code:
<script>
function version(){
alert(<sub wicket:id="version">);
}
</script>
<img class="logo" src="images/logo.png" alt="" width="68" height="21" onclick="version()"/>
Java:
add(new Label("version","1.0.0");
But this is not working.
I am writing a web app using HTML and Wicket.
In my HTML page, I have a small alert script and I need that the wicket will insert a value to the message of the alert. My code is:
HTML code:
<script>
function version(){
alert(<sub wicket:id="version">);
}
</script>
<img class="logo" src="images/logo.png" alt="" width="68" height="21" onclick="version()"/>
Java:
add(new Label("version","1.0.0");
But this is not working.
Share Improve this question edited Nov 23, 2012 at 13:08 user2428118 8,1244 gold badges46 silver badges73 bronze badges asked Sep 11, 2012 at 16:33 GgdwGgdw 2,7195 gold badges25 silver badges23 bronze badges1 Answer
Reset to default 6Wicket won't process anything within <script>
. But you can add a JavaScript function via a header contribution in your page class (or any other Component
).
Wicket 1.5:
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.renderJavaScript("function version(){alert('" + "1.0.0" + "');}", "version");
}
Wicket 6.0:
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(JavaScriptHeaderItem.forScript("function version(){alert('" + "1.0.0" + "');}", "version"));
}
An alternative is to render a Label
which outputs the function:
add(new Label("script", "function version(){alert('1.0.0');}").setEscapeModelStrings(false));
And in your markup
<script wicket:id="script" />
<img class="logo" src="images/logo.png" alt="" width="68" height="21" onclick="version()"/>