How should I put an applet in a strict HTML page?

  • Thread starter Christopher J. Henrich
  • Start date
C

Christopher J. Henrich

I am trying to prepare web pages that contain applets. The old way,
which uses the <applet> tag, has been deprecated for a long time, and
is rejected if the web page is declared to be strict HTML. The new,
correct, way that is supposed to be portable across browsers is to use
an <object> tag.

The exact details of how to use an object tag are not completely
spelled out, anywhere that I have found. Mostly, one finds examples of
"this works for me." Well, here is a sample that does work for me, on
several Mac browsers.
<object
classid="java:XXXXX.class"
codetype="application/octet-stream"
data="java"XXXXX.class"
type="application/x-java-applet"
archive="YYYYY.jar"
width = "500"
height = "300" >
</object>

Here, "XXXXX" should be the name of the principal class in the applet
(probably an extension of Applet or JApplet), and "YYYYY.jar" should be
a path to the archive file; I make this path be relative to the
location of the HTML file, but I think it could be a general URL .

I have tested this successfully with Safari, Camino, Mozilla, Netscape,
and Firefox. My test fails o iCab; I think there are serious problems
with CSS and layout that may have interfered.

I welcome criticism, and information on whether this markup is OK for
Windows browsers.
 
M

Michael Winter

On Wed, 22 Dec 2004 18:19:45 GMT, Christopher J. Henrich

[snip]
The exact details of how to use an object tag are not completely spelled
out, anywhere that I have found.

Sun have produced a document that discusses applet inclusion within a Web
page
(<URL:http://java.sun.com/j2se/1.5.0/docs/guide/plugin/developer_guide/using_tags.html>)
but it refers to the EMBED element when discussing Netscape. The proposed
OBJECT syntax only works for IE and Opera.

[snip]
Well, here is a sample that does work for me, on several Mac
browsers.
<object
classid="java:XXXXX.class"
codetype="application/octet-stream"
data="java"XXXXX.class"
type="application/x-java-applet"
archive="YYYYY.jar"
width = "500"
height = "300" >
</object>

Unfortunately, that won't work with IE, though it will with Opera. After
some experimentation, I found

<object type="application/x-java-applet" width="300" height="100">
<!--[if IE]>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="300" height="100">
<![endif]-->

<param name="code" value="XXX.class">

Alternative content

<!--[if IE]>
</object>
<![endif]-->
</object>

to work with IE, Opera, and Mozilla[1], avoid repeating PARAM elements,
and allow you to specify alternative content without IE rendering it. I
don't have access to Macs. If you can manage to compile an applet to work
with NN4 (I can't get my compiler to regress that far :D), adding

classid="java:XXX.class"

to the outer OBJECT element will add further compatibility, though it
means you're specifying the source in more than one place. If you want to
add additional information, such as the archive attribute, you might want
to investigate the URL I cited earlier. Some of the information might need
to be specified in PARAM elements. I've haven't tried that.

Perhaps someone else can suggest something simpler.

[snip]

Good luck,
Mike


[1] Includes Firefox, Mozilla, and Netscape.
 
T

Toby Inkster

Christopher said:
I welcome criticism, and information on whether this markup is OK for
Windows browsers.

You might get more replies by posting the URL to an example.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,053
Latest member
BrodieSola

Latest Threads

Top