Newsgroup: it.comp.java
Titolo: Richiamare il metodo di un applet

Ho scaricato dalla rete un applet molto semplice e la pagina html che lo
richiama. (di seguito sono riportati i codici). La pagina visualizza dei
bottoni che richiamano ("onClick") un metodo dell'applet con un'istruzione
in VBScript, facendo così visualizzare un'immagine.
Tutto funziona se lancio la pagina in locale, ma compare un errore quando
lancio la pagina da remoto, l'errore è:
"Object doesn't support this property or method:
        'document.jvaLight.turnOn' "
Utilizzo un server Unix con Web server Apache, il browser utlizzato è
Internet Explorer 4.0 (ma ho provato anche con 5.0). L'errore è proprio
nell'istruzione VBScript che richiama il metodo. Ho provato ad utilizzare
un'istruzione JavaScript (onClick="document.jvaLight.turnOn">) ma il
risultato è il medesimo.
Qualcuno mi sa consigliare su come farlo funzionare? C'è qualche
incompatibilità che non considero?
grazie per l'aiuto
Francesca
I codici sono:
CODICE JAVA
import java.awt.*;
 public class Light extends java.applet.Applet {
     Image light;
     boolean red = false;
     boolean yellow = false;
     boolean green = false;
     public void init() {
         light = getImage(getCodeBase(), "traffic.gif");
     }
     public void paint(Graphics g) {
         g.drawImage(light, 10, 10, this);
         if (red) {
             g.setColor(Color.red);
             g.fillOval(35,13,80,80);
         }
         if (yellow) {
             g.setColor(Color.yellow);
             g.fillOval(35,110,82,82);
         }
         if (green) {
             g.setColor(Color.green);
             g.fillOval(33,211,87,87);
         }
     }
     public void turnOn(String color) {
         red = false;
         yellow = false;
         green = false;
         if (color.equals("red")) red = true;
         if (color.equals("yellow")) yellow = true;
         if (color.equals("green")) green = true;
         repaint();
     }
 }
CODICE HTML
<html>
 <head>
 <title>Traffic Light demo</title>
 <SCRIPT language = "VBScript">
 <!--
 Sub RedButton_OnClick
     document.jvaLight.turnOn("red")
 End Sub
 Sub YellowButton_OnClick
     document.jvaLight.turnOn("yellow")
 End Sub
 Sub GreenButton_OnClick
     document.jvaLight.turnOn("green")
 End Sub
 -->
 </SCRIPT>
 </head>
 <body>
 <center>
 <applet code="Light.class" id="jvaLight" height=325 width=148 align="left">
 </applet>
 <table cellpadding=30 border=0 align="left">
 <tr>
 <td>
 <input type=button value="Red" name="RedButton">
 </td>
 <tr>
 <td>
 <input type=button value="Yellow" name="YellowButton">
 </td>
 </tr>
 <tr>
 <td>
 <input type=button value="Green" name="GreenButton">
 </td>
 </tr>
 </table>
 </center>
</body>
 </html>

Io ho testato il tuo codice --pagina e classe-- su un server
WinNT 4 ma senza web server ed ho visto che funziona.
Prova eventualmente a vedere dalla console java di IE 
se hai degli errori di qualche tipo.
Eventualmente cambia da VBScript a javascript...
Ciao
Stelvio

 writes:
FB> Ho scaricato dalla rete un applet molto semplice e la pagina html che lo
FB> richiama. (di seguito sono riportati i codici).
Hmmm, penso sia OT in questo gruppo...
Credo proprio che sia un problema di permessi del browser. Controllali
nelle "Opzioni Internet".
Per la cronaca ho  provato in locale, da un server NT  da uno e da uno
Linux con apache  (proprio per scrupolo, che il  server c'entra poco),
ed   ha  funzionato.  Ho   provato  anche   a  "rovinare"   la  classe
trasferendola in Ascii sul server Linux da una macchina NT...
--
Gian Uberto| main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Lauri      |                        David Korn, 1987 ioccc best one liner 
(aka saint)|-------------------------------------------------------------------
em@ail: sierra alfa india november tango AT echo november golf DOT india tango


<PARAM NAME = "SCRIPTABLE" VALUE = "true" >
<PARAM NAME = 
"type" 
VALUE="application/x-java-applet;version=1.2">
</OBJECT>
<input 
type = "button" value = "PRINT" name = "incrementa" id = 
"incrementa"
onClick="document.applets[0].incrementa()">
</BODY>
</HTML>