Read/Write HTML field values from JAVATag(s): Javascript interaction
[Netscape AND IE4 compatible]
The netscape.javascript.* (LiveConnect) package provides facilities to directly manipulate HTML FORM components.
JSObject win = (JSObject)JSObject.getWindow(this);
JSObject inputText = (JSObject) win.eval("document.forms[0].elements[0]");
String value = (String)inputText.getMember("value"); // read form value
inputText.setMember("value" , value + " new stuff"); // write form value
PrivilegeManager.enablePrivilege("UniversalBrowserRead");
PrivilegeManager.enablePrivilege("UniversalBrowserWrite");But there is a workaround, simply pass the informations through Javascript functions!
[JSjava.java]
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
import netscape.javascript.*;
public class JSjava extends Applet
implements ActionListener {
Button b1,b2;
TextField tf;
JSObject win;
public void init(){
setLayout(new FlowLayout());
tf = new TextField(10);
b1 = new Button("to FORM");
b2 = new Button("from FORM");
b1.addActionListener(this);
b2.addActionListener(this);
add(tf);add(b1);add(b2);
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == b1) {
// send TO FORM
JSObject win = (JSObject)JSObject.getWindow(this);
win.eval("setHTMLInputText('"+tf.getText()+"');");
}
if (ae.getSource() == b2) {
// receive FROM FORM
JSObject win = (JSObject)JSObject.getWindow(this);
tf.setText((String)win.eval("getHTMLInputText();"));
}
}
}[JSjava.html]
<HTML><HEAD>
<SCRIPT>
function getHTMLInputText(){
return document.forms[0].elements[0].value;
}
function setHTMLInputText(s){
document.forms[0].elements[0].value = s;
}
</SCRIPT></HEAD><BODY>
<FORM>
<INPUT TYPE=text SZIE=20>
</FORM>
<APPLET NAME="JS" CODE=JSjava.class MAYSCRIPT WIDTH=200 HEIGTH=200>
</APPLET></BODY></HTML>
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com