Avatar billede bigbendk Nybegynder
30. oktober 2000 - 16:37 Der er 18 kommentarer og
1 løsning

Java -> JavaScript

Kan man fra en java applet aktivere en funktion i javascript?
eller udføre andre ting til browseren? (så som at skifte URL i en frame elle lign.)
Avatar billede davsclaus Nybegynder
30. oktober 2000 - 17:51 #1
Nej java og javascript er to helt forskellige ting. Det er dog ærgeligt at script sproget hedder javascript og ikke browser/web script eller sådan noget.

javascript er et scriptsprog som skal fortolkes for at udføres, og dette sker typisk i en browser hvor du ude på browserklienten kan udføre nogle simple kommandoer, validering osv.

Java er et programmeringssprog som ikke har noget med javascript at gøre. Dog minder syntax\'en om hinanden, men det er nok mere c++ der har inspireret disse to sprog.

Java har noget der hedder JSP. Men det er et server side script sprog som afvikles på en webserver, hvor webserven så laver ren HTML som sendes ud til browseren. I JSP kan du indlejre javascript .js hvis du har lyst, da det er noget som browseren afvikler (client side)

Så svar på dine spørgsmål:
Man kan ikke fra en java applet aktivere en funktion i javascript eller noget andet. Du tænker sikkert på dette, da man kan få en java applet til at køre inde i en browser - men når alt kommer til alt så ved appletten ikke at den kører inde i en browser. Du kan køre den samme applet fra f.eks. en appletviewer som blot er en lille program til at starte applets, og denne appletviewer kører ikke i en browser.

Håber at du fandt frem til svaret i denne smørre jeg fik skrevet her.

- Claus
Avatar billede stigc Nybegynder
30. oktober 2000 - 18:29 #2
Man kan faktisk godt. Man kan begge veje. Altså kalde en java applet funtionk fra javascript (har selv prøvet det), og kalde en javascript funktion fra en java applet (har dog ikke prøvet det!)

Her er to link der viser hvordan:

http://www.eksperten.dk/spm/22519
http://www.woodger.ca/jv_jsint.htm#jsfcn
Avatar billede stigc Nybegynder
30. oktober 2000 - 18:33 #3
Jeg er lidt i tvivl om kald fra en javaapplet til javscript kræver et plugin. Men så kan man bare lave det den anden vej. Lav en javascript funktion der kalder en funktion i appleten (hver skeundt), som returnerer en boolean. Når dette kald returnere \"true\", kan du kalde en ny funktion i javascript! Dermed har du opnået hvad du ville, udelukkende med kald fra javascript til en applet!
Avatar billede el_gnu Nybegynder
30. oktober 2000 - 22:07 #4
davsclaus => appleten ved godt at den kører i en browser og du kan, som stigc skriver, godt kalde javascript funktioner fra appleten så længe du har MAYSCRIPT med i applet tag\'et. Det kræver ikke direkte et plug-in, men at browseren er enten IE eller NS.

bigbendk => Hvis du vil skifte URL i en frame fra en applet, kan det gøres med følgende:

getAppletContext().showDocument(new URL(getDocumentBase(), \"relativ/URL.html\"), \"frameNavn\");

at kalde javascript funktioner er mere tricky, men her et godt link:

http://java.sun.com/products/plugin/1.3/docs/jsobject.html

(-: el Gnu

Avatar billede el_gnu Nybegynder
30. oktober 2000 - 22:09 #5
og hvis du vil vise en besked i browserens statusbar kan du bruge

showStatus(String);
Avatar billede stigc Nybegynder
30. oktober 2000 - 22:11 #6
el_gnu>> står der ikke at det netop kræver i plugin?
Avatar billede el_gnu Nybegynder
30. oktober 2000 - 22:19 #7
Som jeg læser det kræver det ikke et browser plug-in men den package der hedder netscape.javascript.
For at denne klasse er til stede kræves java 1.3 og det er ikke standard i hverken NS 4 eller IE 5 så man kan sige at plug-in\'en indirekte er påkrævet, hvilket jo også er tilfældet hvis man bruger SWING.
Avatar billede stigc Nybegynder
30. oktober 2000 - 22:21 #8
Det er vel også det samme! Brugeren er nød til at installere noget for at køre appleten. Ikke særlig optimalt. Det er JAVA2
Avatar billede stigc Nybegynder
30. oktober 2000 - 22:25 #9
Korrekt skift af URL i framen: \"test\":

        URL link;

    try { link = new URL (getCodeBase(), \"nyside.htm\");}
        catch (Exception e) {}   
   
    try { getAppletContext().showDocument(link, \"test\"); } catch (Exception e) {}   
   
   
Avatar billede el_gnu Nybegynder
02. november 2000 - 19:51 #10
kan du få det til at virke?
Avatar billede stigc Nybegynder
26. november 2000 - 20:40 #11
sker her noget?
Avatar billede bigbendk Nybegynder
26. november 2000 - 20:48 #12
Jeg kan stadig ikke kalde en funktion fra Java appleten og ud i JavaScript - Uden at brugeren skal downloade en tilføjelse, og det er ikke acceptabelt.
Avatar billede stigc Nybegynder
26. november 2000 - 20:52 #13
men har du ikke fået svar på dit spørgsmål?
Avatar billede bigbendk Nybegynder
26. november 2000 - 20:54 #14
Tjowe... jeg spørg om det kan lade sig gøre, og svaret er både ja, og nej... Hvem skal have pointene?
Avatar billede stigc Nybegynder
26. november 2000 - 20:56 #15
op til dig!
Avatar billede bigbendk Nybegynder
30. november 2000 - 08:52 #16
\'Vinderen\' blev el gnu for dette link: http://java.sun.com/products/plugin/1.3/docs/jsobject.html
Avatar billede stigc Nybegynder
30. november 2000 - 09:43 #17
det fandt jeg ikke særlig fair!
El Gnu giver mig ret i mit svar, og fortæller dig en ting som ikke passer!
Avatar billede stigc Nybegynder
30. november 2000 - 09:46 #18
jeg fortæller ovenikøbet en metode du kan simulere et kald fra en applet til javascript uden java2!

og mit link:

http://www.woodger.ca/jv_jsint.htm#jsfcn

fortæller lige så meget som:

http://java.sun.com/products/plugin/1.3/docs/jsobject.html
Avatar billede el_gnu Nybegynder
30. november 2000 - 15:57 #19
stigc => rolig nu :-) se http://www.eksperten.dk/spm/36023
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