在網頁中使用Applet的標籤

雖然w3c不推薦使用applet,但用applet在企業內部網(Intranet)中進行applet的部署是一個推薦的常用做法,那麼就先來討論一下<applet>標籤的使用。

<applet>的使用

再早期進行applet的部署,用<applet>標籤是一種很常見的做法,applet標籤所有的屬性列表,你可以在這裏找到,http://www.w3schools.com/tags/tag_applet.asp,裏面進行了詳細的說明。

1.下面給一個使用applet的例子:

<applet code=Applet1.class width="200" height="200">

Your browser does not support the <code>applet</code> tag.

</applet>

一般我們主要使用的就是這幾個屬性:

code屬性指的是applet類,也就是繼承與java.applet.Applet或java.swing.JApplet類的子類,此屬性值一定要爲你存放applet類的路徑;

width屬性指的是你的applet在瀏覽器中所要佔用的寬度

height屬性指的是你的applet在瀏覽器中所要佔用的高度

2.一般我們使用的就這幾個屬性,但有時我們將applet打包到了jar文件中,這時我們就要使用archive屬性了,比如:

<applet code=package.Applet1.class archive="app.jar" width="200" height="200">

Your browser does not support the <code>applet</code> tag.

</applet>

這個實例的意思,就爲在你存放html文件的文件中的app.jar文件中查找package.Applet1.class這個applet類,如果你想要使用多個jar文件,在archive的屬性值中以英文編碼逗號分隔jar文件,即可。

3.有時我們可能我們想加載的文件不再當前目錄,而在其子目錄,或者上級目錄,這是我們就可以使用codebase屬性,例如:

<applet code=Applet1.class codebase="app" width="200" height="200">

Your browser does not support the <code>applet</code> tag.

</applet>

這樣Java plug-in就會在當前目錄下的app子目錄中查找,加載Applet1.class類。

4.我們也可以通過其向applet類中傳遞參數,比如:

<applet code=Applet1.class codebase="app" width="200" height="200">

<param name="param1" value="1"/>

<param name="param2" value="2"/>

Your browser does not support the <code>applet</code> tag.

</applet>

這樣,我們就可以在我們寫的applet通過getParameter(String param)方法得到這些參數,使得我們可以在applet標籤中就可以配置程序的目的,而傳入的參數名,就是我們在param標籤的name屬性值。

 

<object>使用

使用object標籤,通常只在Internet explorer中使用,例如:

<object 
  classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
  width="200" height="200"
  codebase="http://java.sun.com/products/plugin/autodl/
jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0">
  <param name="code" value="Applet1.class">
</object>

屬性介紹:

1.classid屬性表示要使用的最小Java plug-in版本號,這就表示當前安裝的Java plug-in的版本必須大於classid,否則此applet運行不了。通常在Internet Explorer中使用的classid屬性值是固定的,即:

classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"

此種格式表示使用IE中最新的jre版本。

classid也有另外的一種格式,如下:

classid="clsid:CAFEEFAC-xxxx-yyyy-zzzz-ABCDEFFEDCBA"

xxxx-yyyy-zzzz爲Java plug-in的版本號,如1.6.0版本,就可以表示爲:

classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"

2.width,height屬性與applet一樣,這裏就不介紹了

3.codebase爲可選屬性,它有以下作用:

在本機安裝的JRE(Java Runtime Environment)的版本小於classid屬性指定的版本,瀏覽器則到此url中下載安裝jre。

codebase的有如下格式:

codebase=<URL>

此種格式,表是如果本地安裝的jre版本不爲classid指定的版本,則轉到指定的url,進行下載,安裝

codebase=<URL>#Version=major,minor,micro,undate

此種格式,如果本機安裝的jre版本比classid中指定的小,則到指定的url中下載jre

注意:這裏是用英文逗號分隔的。

這裏用Sun公司專門爲Windows平臺下的安裝文件各個版本下載文件(.cab格式),http://java.sun.com/javase/6/webnotes/install/jre/autodownload.html

<embed>標籤

使用embed標籤,通常在Mozilla系列瀏覽器中使用,如下:

<embed code="Applet1.class"
  width="200" height="200"
  type="application/x-java-applet;version=1.6"
  pluginspage="http://java.sun.com/javase/downloads/ea.jsp"/>

屬性介紹:

1.code,width,height屬性於applet標籤中的屬性相同,這裏就不介紹了

2.type屬性有如下格式:

type="application/x-java-applet;version=1.6"
此種格式,表示支持MIME類型爲application/x-java-applet,版本爲1.6或更高的被調用,如果本地安裝的jre比version中指定的大或等於,則調用此jre,否則指向pluginspage屬性指定的url。

type="application/x-java-applet;jpi-version=1.5.0_07

此種格式,表示本地運行的jre版本必須大於或等於1.5.0_07,否則指向pluginspage的url

<jsp:plugin/>標籤的使用

<jsp:plugin type=applet code="Molecule" codebase="/html" >
<jsp:params>
    <jsp:param name="molecule" value="molecules/benzene.mol"/> 
</jsp:params>
<jsp:fallback>
       <p> Unable to start Plug-in. </p>
</jsp:fallback>
</jsp:plugin>

<jsp:plugin>爲applet的根標籤,我們在jsp頁面中的applet所做的動作都在這其中進行

<jsp:param>與applet標籤中的<param>相同

<jsp:params>用於包裹多個<jsp:param>標籤

<jsp:fallback>用於Java Plug-in啓動失敗,執行其中的內容,一般順利執行,則會被忽略

 

 

另外一些技術幫助

如何在一個讓一個applet能夠運行在不同的瀏覽器中?

有三種辦法?

1.使用applet標籤

applet標籤被大多數的主流瀏覽器所支持。

2.使用html標籤

<object 
  classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"
  <param name="code" value="Applet1.class">
    <comment>
      <embed code="Applet1.class"
        type="application/x-java-applet;jpi-version=1.6">
        <noembed>
          No Java Support.
        </noembed>
      </embed>
    </comment>
  </object>

在IE中,IE會識別Object標籤,忽略comment籤

在Mozilla瀏覽器中,Mozilla會忽略object,classid,可以識別comment標籤

3.使用javascript
<html>
<script language="Javascript">
var _app = navigator.appName;
if (_app == 'Mozilla') {
   document.write('<embed code="Applet1.class"',
                   'width="200"',
                   'height="200"',
                   'type="application/x-java-applet;version=1.6">');
  }
else if (_app == 'Microsoft Internet Explorer') {
   document.write('<OBJECT ',
                   'classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"',
                   'width="200"',
                   'height="200">',
                   '<PARAM name="code" value="Applet1.class">',
                   '</OBJECT>');
 }
 else {
 document.write('<p>Sorry, unsupported browser.</p>');
 }
</script>
</html>

確定自己瀏覽器的javascript解釋器被打開了,在JavaScript中我們可以用appName變量名來取得瀏覽器的名字,如果

爲Mozilla,我們就讓JavaScript寫出與Mozilla相關的html代碼,如果爲Microsoft Internet Explorer,就寫出與IE相關的html代碼。

發佈了211 篇原創文章 · 獲贊 29 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章