Avatar billede tofte Juniormester
12. august 2004 - 11:17 Der er 10 kommentarer og
1 løsning

Svar til side fra applet

Hej hej

Jeg er rimelig ny inden for javaprogrammering.

Mit problem er som følger. Jeg har lavet en applet som læser nogle indstillinger(java version mm). Disse indstillinger vil jeg gerne have tilgængelige på min hjemmeside. Jeg vil ikke have dem vist i appleten, men eks i en form på siden, som jeg kan submitte til serveren.

Så hvordan kan jeg lave et kald fra min side til appletten, så jeg kan hive nogle værdier ud af appletten.

Rasmus
Avatar billede arne_v Ekspert
12. august 2004 - 11:24 #1
Jeg kan se to approaches:

1)

appletten laver en form submit (HTTP POST request) med data uden at brugeren
ser noget

2)

appletten bruger Java-JavaScript interfacet til at sætte nogle værdier i
en form via JavaScript
Avatar billede tofte Juniormester
12. august 2004 - 11:28 #2
hvis vi nu bruger 2. Hvordan kan man sætte javascript værdier fra appletten
Avatar billede tofte Juniormester
12. august 2004 - 12:09 #3
HAr funde ud af det. Tak for hjælpen, smid et svar
Avatar billede arne_v Ekspert
12. august 2004 - 12:10 #4
OK

(jeg sidder ellers og arbejder på et lille eksempel)
Avatar billede tofte Juniormester
12. august 2004 - 12:13 #5
jeg kan ikke få det til at virke på MS Java, så du må meget gerne smide et eksempel
Avatar billede arne_v Ekspert
12. august 2004 - 12:54 #6
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

import netscape.javascript.*;

public class SetFieldApplet extends Applet implements ActionListener{
    public Button btn;
    public void init() {
        btn = new Button("Set");
        btn.addActionListener(this);
        add(btn);
        this.setVisible(true);
    }
    public void actionPerformed(ActionEvent e) {
        JSObject window = JSObject.getWindow(this);
        JSObject doc = (JSObject)window.getMember("document");
        System.err.println("doc=" + doc);
        JSObject form = (JSObject)doc.getMember("myform");
        System.err.println("form=" + form);
        JSObject field = (JSObject)form.getMember("myfield");
        System.err.println("field=" + field);
        field.setMember("value", "abc");
    }
}
Avatar billede arne_v Ekspert
12. august 2004 - 12:54 #7
<html>
<head>
<title>
HTML Test Page
</title>
</head>
<body>
SetFieldapplet will appear below in a Java enabled browser.<br>
<applet
  codebase = "."
  code    = "SetFieldApplet.class"
  name    = "TestApplet" MAYSCRIPT
  width    = "400"
  height  = "300"
  hspace  = "0"
  vspace  = "0"
  align    = "middle"
>
</applet>
<form name="myform" method="post" action="noget">
<input type="text" name="myfield"/>
</form>
</body>
</html>
Avatar billede arne_v Ekspert
12. august 2004 - 12:55 #8
Husk at compile til JVM 1.1

(-target 1.1 hvis det er command line)
Avatar billede arne_v Ekspert
12. august 2004 - 12:56 #9
Og uden debug print:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

import netscape.javascript.*;

public class SetFieldApplet extends Applet implements ActionListener{
    public Button btn;
    public void init() {
        btn = new Button("Set");
        btn.addActionListener(this);
        add(btn);
        this.setVisible(true);
    }
    public void actionPerformed(ActionEvent e) {
        JSObject window = JSObject.getWindow(this);
        JSObject doc = (JSObject)window.getMember("document");
        JSObject form = (JSObject)doc.getMember("myform");
        JSObject field = (JSObject)form.getMember("myfield");
        field.setMember("value", "abc");
    }
}
Avatar billede tofte Juniormester
12. august 2004 - 22:39 #10
mange tak for hjælpen, det virker som det skal
Avatar billede arne_v Ekspert
12. august 2004 - 22:42 #11
Det tog en farlig tid med det eksempel fordi:
1)  jeg glemte at compile til Java 1.1 så IE (med MS JVM) kunne ikke lide den
2)  jeg er slet ikke kyndig udi JavaScript
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester