在網頁中使用Applet的標籤

來源:互聯網
上載者:User

雖然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代碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.