I have helloJava.HTML in my GWT project , within that html file , i have this javascript code
<script type="text/javascript">
function testJavaScript(var input){
var var1inJS = "Default value";
alert("Value of Var1 = " + var1inJS);
var1inJS = input;
alert("Value of Var1 = " + var1inJS);
var var2inJS = "Waht is the value of Var2";
alert("Value of Var2 = " + var2inJS);
}
now i want to call this method from my onmoduleLoad class(i.e from my java class).
is it possible ?
hellojava.html file
<!doctype html>
<!-- The DOCTYPE declaration above will set the -->
<!-- browser's rendering engine into -->
<!-- "Standards Mode". Replacing this declaration -->
<!-- with a "Quirks Mode" doctype is not supported. -->
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- -->
<!-- Consider inlining CSS to reduce the number of requested files -->
<!-- -->
<link type="text/css" rel="stylesheet" href="HelloJSNI.css">
<!-- -->
<!-- Any title is fine -->
<!-- -->
<title>Web Application Starter Project</title>
<!-- -->
<!-- This script loads your compiled module. -->
<!-- If you add any GWT meta tags, they must -->
<!-- be added before this line. -->
<!-- -->
<script type="text/javascript" language="javascript" src="hellojsni/hellojsni.nocache.js"></script>
<script type="text/javascript">
function testJavascript(var input){
window.jsniAlert();
var var1inJS = "Default value";
alert("Value of Var1 = " + var1inJS);
var1inJS = input;
alert("Value of Var1 = " + var1inJS);
var var2inJS = "Waht is the value of Var2";
alert("Value of Var2 = " + var2inJS);
}
function callJava(){
}
</script>
</head>
<!-- -->
<!-- The body can have arbitrary html, or -->
<!-- you can leave the body empty if you want -->
<!-- to create a completely dynamic UI. -->
<!-- -->
<body>
<!-- OPTIONAL: include this if you want history support -->
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
<!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
<noscript>
<div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
Your web browser must have JavaScript enabled
in order for this application to display correctly.
</div>
</noscript>
<h1>JSNI EXAMPLE</h1>
<table align="center">
<tr>
<td colspan="2" style="font-weight:bold;"></td>
</tr>
<tr>
<td id="nameFieldContainer"></td>
<td id="sendButtonContainer"></td>
</tr>
<tr>
<td colspan="2" style="color:red;" id="errorLabelContainer"></td>
</tr>
</table>
</body>
</html>
The function syntax from Travis is correct, the problem is the name of the calling function and JS script is not right.
Here are the corrections
Error in the function declaration, you should not use
varforthe argument.
Remove the first row
window.jsniAlert();Correct the declaration of the second function
functiontocallJava(){
function callJava(){Here is the code (lets call the function in JS
testJSnative):Example of class implementing
EntryPoint:I hope this will be helpful.