Aufruf von Funktion in Applet

Allgemeine Themen rund um Java

Moderator: wegus

Antworten
Katse81
Beiträge: 5
Registriert: 06.11.2013, 16:11

Aufruf von Funktion in Applet

Beitrag von Katse81 » 11.11.2013, 15:17

Hallo!

Ich möchte aus Javascript auf mein Applet zugreifen, aber das funktioniert nicht. Sieht jemand meinen Fehler?
Mein Applet sieht folgendermaßen aus:

Code: Alles auswählen

import java.applet.*;
import java.awt.*;
import java.net.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import netscape.javascript.JSObject;
//import java.lang.reflect.Method;
//import java.util.Vector;
//import java.util.Arrays;
//import javax.swing.filechooser.FileFilter;


public class SearchApplet extends JApplet {
    String strDir = "";
    private String scripts;
        JOptionPane	  optionPane	= new JOptionPane();

     private void getParameter(double value) {

     }
    public void init() {
        scripts = getParameter("script");
       JSObject.getWindow(this).eval(scripts);
       optionPane.showMessageDialog(null,scripts,"",optionPane.ERROR_MESSAGE);
    }

    public void paint(Graphics g) {
        g.drawString ("Hier muss was stehen: ", 20, 40);
    }

    public boolean loaded(boolean b_load) {
      b_load = true;
      return b_load;
    }
	
    public void test(){
	optionPane.showMessageDialog(null,"execute","",optionPane.ERROR_MESSAGE);
    }
    public void start() {
    }

    public void stop() {
    }

    public void destroy() {
    }
}
Ich habe das Applet folgendermaßen im HTML eingebunden:

Code: Alles auswählen

 <object id="searchApplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200"
            codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0">
        <param name="type" value="application/x-java-applet;version=1.3" /> <!-- Opera, Google Chrome and Safari use the type parameter, instead of the clsid -->
        <param name="code" value="SearchApplet.class" />
        <param name="MAYSCRIPT" value="true" />
		<param name=script value=loaded()>
    </object>
Und in Javascript bei Klick auf einen Button wird folgende Funktion aufgerufen:

Code: Alles auswählen

    
var b_load = false;
function loaded(){
      b_load = true;
}
function LoadSuch() {
    var app = document.getElementById("searchApplet");
    alert(b_load);
    alert(document.applets["searchApplet"]);
    alert(document.searchApplet);
    alert(app);
    app.test();}
  }
Die alerts() habe ich bisher, um zu sehen, ob ein anderer Aufruf besser wäre, aber egal, was ich nehme, es kommt immer die Fehlermeldung, dass "das Objekt unterstützt diese Eigenschaft oder Methode nicht". b_load gibt es bei LoadSuch() als true aus! Aber beim Aufruf von app.test() kommt eben diese FEhlermeldung, dass er die Methode nicht kennt. Habt ihr einen Tipp? Bin echt schon am Verzweifeln, hab schon soviel gegoggelt.

LG Katse

Antworten