Nou, ik heb toch besloten om die smerige omweg eruit te knallen. Ik heb de applet met een decompiler uit elkaar gehaald en de methode gevonden die de paginanummers veranderd. Deze methode heeft de geweldige naam: "SetPageNumber".
Welnu, javascriptje aangepast dat ie i.p.v. iframe reload deze methode aanroept. Daarvoor moest de applet tag inderdaad verdwijnen en is het een object tag geworden. Maar nu zit ik met een ander probleem:
code:
1
2
3
4
5
6
7
8
9
10
| <object archive="TssView.jar" CODE="TSSView.class" CODEBASE="http://www.domeinnaam.nl/teletekst" id="txtView" height="<?php echo($height); ?>" width="<?php echo($width); ?>" align="top" MAYSCRIPT VIEWASTEXT>
<PARAM NAME = CODE VALUE = "TSSView.class" >
<PARAM NAME="txtsub" VALUE="00">
<PARAM NAME="font" VALUE="vtx10x12.gif">
<PARAM NAME="channel" VALUE="pages">
<PARAM NAME="txtpage" VALUE="<?php echo($page); ?>">
<PARAM NAME="bgcolor" VALUE="000000">
<PARAM NAME="showbuttons" VALUE="false">
<PARAM NAME="name" VALUE="GLD TxT">
</object> |
Dit is nog niet helemaal correct, maar zo functioneert 'ie in ieder geval perfect in Internet Explorer. Firefox laat de applet zo niet zien. Na wat rond googlen kwam ik erachter dat i.p.v. de <embed> tag firefox ook <object> kent, maar dan net anders:
code:
1
2
3
4
5
6
7
8
9
10
| <object codetype="application/java" classid="java:TSSView.class" archive="TssView.jar" CODE="TSSView.class" CODEBASE="http://www.domeinnaam.nl/teletekst" id="txtView" height="<?php echo($height); ?>" width="<?php echo($width); ?>" align="top" MAYSCRIPT VIEWASTEXT>
<PARAM NAME = CODE VALUE = "TSSView.class" >
<PARAM NAME="txtsub" VALUE="00">
<PARAM NAME="font" VALUE="vtx10x12.gif">
<PARAM NAME="channel" VALUE="pages">
<PARAM NAME="txtpage" VALUE="<?php echo($page); ?>">
<PARAM NAME="bgcolor" VALUE="000000">
<PARAM NAME="showbuttons" VALUE="false">
<PARAM NAME="name" VALUE="GLD TxT">
</object> |
Nu laat firefox de applet wel zien, maar is deze via javascript niet aanspreekbaar. Paginanummer wijzigen werkt niet.
Nu had ik wel dit gevonden wat in elke browser moet werken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| <!--[if !IE]> Firefox and others will use outer object -->
<object classid="java:TSSView.class"
type="application/x-java-applet"
archive="http://www.domeinnaam.nl/teletekst/TssView.jar"
height="<?php echo($height); ?>"
width="<?php echo($width); ?>"
txtpage="<?php echo($page); ?>"
id="txtView"
txtsub="0"
font="vtx10x12.gif"
channel="pages"
bgcolor="000000"
showbuttons="false"
scriptable="true">
<!--<![endif]-->
<!-- MSIE (Microsoft Internet Explorer) will use inner object -->
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase="http://www.domeinnaam.nl/teletekst"
height="<?php echo($height); ?>"
width="<?php echo($width); ?>"
txtpage="<?php echo($page); ?>"
id="txtView"
txtsub="0"
font="vtx10x12.gif"
channel="pages"
bgcolor="000000"
showbuttons="false"
scriptable="true">
<param name="code" value="TSSView.class" />
<param name="archive" value="http://www.domeinnaam.nl/teletekst/TssView.jar" />
<strong>
This browser does not have a Java Plug-in.
<br />
<a href="http://java.sun.com/products/plugin/downloads/index.html">
Get the latest Java Plug-in here.
</a>
</strong>
</object>
<!--[if !IE]> close outer object -->
</object>
<!--<![endif]--> |
In beide browsers start java nu, maar krijg ik in de console deze foutmelding:
code:
1
2
3
4
5
6
7
8
9
10
11
| java.security.AccessControlException: access denied (java.net.SocketPermission www.mijneigentestdomeintje.nl resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin.viewer.context.DefaultPluginAppletContext.getImage(Unknown Source)
at java.applet.Applet.getImage(Unknown Source)
at java.applet.Applet.getImage(Unknown Source)
at TSSView.init(TSSView.java:73)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source) |
Wat ik niet snap is wat er nou zo heel anders is aan de laatste aanroep i.p.v. de 2 eerdere. De 2 eerdere lieten dus wel de applet zien en die draaide ook, alleen was bij 1 van de 2 de methode in de applet niet aanroepbaar via javascript.
Oh ja, javascript commando die ik gebruik is:
code:
1
| document.txtform.txtView.SetPageNumber(waarde, 0); |
Iemand een hintje in de juiste richting?