日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

在多种浏览器中嵌入Applet

發布時間:2023/12/10 HTML 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在多种浏览器中嵌入Applet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1?基本信息

摘要:一個開發好的Java Applet,是通過標準的標簽(Tag)嵌入到HTML頁面中的。瀏覽器在解析到支持的嵌入Applet的標簽時,會啟動Java Plug-in來渲染標簽中的Java Applet。

由于歷史原因,在頁面中嵌入Applet產生了幾種相互不兼容的方式,不同的瀏覽器、乃至同一個瀏覽器的不同版本,支持的標簽都不完全相同。本文關注的是 不同瀏覽器Applet嵌入的差異性,首先介紹幾種把Applet嵌入到頁面中的標簽,再介紹幾個能夠支持多種瀏覽器的嵌入方式。

作者:丁向武

2?頁面中嵌入Applet的幾種方式

2.1?Applet Tag

  Applet標簽是最早IE用來支持嵌入Java Applet的標簽,那個時候微軟還有自己的JAVA虛擬機。在有些版本的瀏覽器上,Applet標簽是由瀏覽器自己渲染的,而不是由SUN Java Plug-in渲染的。這個標簽出現的比較早,現在有些瀏覽器仍然能夠兼容它,比如IE、Firefox等,但Netscape不支持這個標簽?,F在的 W3C規范里,這個標簽已經不推薦使用,而是被Object標簽代替了。這個標簽最大的問題是,在客戶端沒有安裝Java Plug-in時,不能指定一個自動下載安裝Java Plug-in的地址。

下面是這個標簽的一個例子:

  • <APPLET code="XYZApp.class" codebase="html/" archive="Sample.jar"

  • align="baseline" width="200" height="200">

  • <PARAM name="model" value="models/HyaluronicAcid.xyz">

  • No Java 2 SDK, Standard Edition v 1.4.2 support for APPLET!!

  • </APPLET>

  • ?

    2.2?Embed Tag

      這是Netscape Navigator 4.x瀏覽器支持的嵌入Applet的標簽,其他瀏覽器很少支持這個標簽的,因此實際應用的很少。這個標簽不支持以內嵌Param標簽的方式為 Applet傳遞參數。

    下面是這個標簽的例子:

  • <EMBED type="application/x-java-applet;jpi-version=1.4.1" width="200"

  • height="200" align="baseline" code="XYZApp.class"

  • codebase="html/" model="models/HyaluronicAcid.xyz"

  • pluginspage="http://java.sun.com/j2se/1.4.1/download.html">

  • <NOEMBED>

  • No Java 2 SDK, Standard Edition v 1.4.1 support for APPLET!!

  • </NOEMBED>

  • </EMBED>

  • ?

    2.3?Object:clsid Tag

      這是現在IE瀏覽器中推薦的用來嵌入Applet的標簽,如下面的例子所示。

      這個標簽中的URI以“clsid”開始,只有IE瀏覽器支持這個屬性,其他瀏覽器都不支持。URI以“clsid”開始,表明這是一個 ActiveX控件,只有Windows中的IE才識別的屬性,代表注冊表中一個注冊的ActiveX類,“CAFEEFAC- 0014-0002-0000-ABCDEFFEDCBA”是SUN JRE安裝時在Windows中注冊的,代表SUN Java Plug-in 1.4.2。因此當IE解析到示例中的標簽時,會通過注冊表,查找到Java Plug-in,然后啟動JRE,在當前位置渲染這個Applet。另外一個clsid值:“8AD9C840-044E-11D1- B3E9-00805F499D93”,代表當前最新的JRE版本。

      “codebase”屬性指定了一個特定版本JRE的下載地址,當客戶端機器上沒有安裝Java Plug-in時,會自動從這個地址下載安裝Java Plug-in。

      “scriptable”屬性用于指定Applet示例是否能與頁面中的JavaScript交互。

      這個標簽功能比較豐富,可以通過Param標簽為Applet傳遞參數、設置需要的JDK版本、指定自動下載JRE的路徑等。在IE中嵌入 Applet時,都要使用這個標簽。

    下面是這個標簽的示例:

  • <OBJECT classid="clsid:CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA"

  • width="200" height="200" align="baseline"

  • codebase= http://java.sun.com/products/plugin/autodl/jinstall-1_4_2-windows-i 586.cab#Version=1,4,2,0">

  • <PARAM name="code" value="XYZApp.class">

  • <PARAM name="codebase" value="html/">

  • <PARAM name="type" value="application/x-java-applet;jpi-version=1.4.2">

  • <PARAM name="model" value="models/HyaluronicAcid.xyz">

  • <PARAM name="scriptable" value="true">

  • No Java 2 SDK, Standard Edition v 1.4.2 support for APPLET!!

  • </OBJECT>

  • 2.4?Object:java Tag

      這是當前的W3C規范推薦的在瀏覽器中嵌入Applet的方式,除IE外的大多數瀏覽器的當前版本都能夠支持,包括Netscape Navigator、Firefox等,并且不受操作系統平臺的限制。URI以“java”開始,表明這里嵌入的是一個Java Applet,瀏覽器會啟動Java Plug-in來渲染這個Applet對象。如果客戶端沒有安裝Java Plug-in,瀏覽器會自動到Sun的站點上下載和安裝最新的Java Plug-in。

    下面是這個標簽的示例:

  • <OBJECT classid="java:Sample2.class"

  • type="application/x-java-applet"

  • archive="Sample2.jar"

  • height="300" width="450" >

  • <PARAM name="model" value="models/HyaluronicAcid.xyz">

  • </ OBJECT>

  • 3?同時支持多種瀏覽器的嵌入方式

      通過上面的介紹可以看到,已有的幾種在頁面中嵌入Applet的方式,都只能適應特定的瀏覽器。對于幾種常用的瀏覽器,如IE、 Netscape Navigator、Firefox等,沒有一種方式能夠同時適應。必須要做一項特殊處理,才能使同一段HTML代碼能夠適應多種瀏覽器。下面介紹幾種方法。

    3.1?組合Object:clsid、 Embed

      如下面的示例所示,把Embed標簽用Comment標簽包含起來,放在Object標簽內部。IE在解釋Object標簽時,會忽略 Comment標簽內的內容。而Netscape Navigator不能識別clsid、不能識別Comment標簽,它會忽略忽略外層的Object標簽和Comment標簽,而只看到Embed標簽的內容。這樣,這段代碼可以同時適應IE和Netscape Navigator兩種瀏覽器。

    示例:

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

  • width="200" height="200" align="baseline"

  • codebase="http://java.sun.com/products/plugin/1.4/jinstall-14-win32.cab#Version=1,4,0,mn">

  • <PARAM NAME="code" VALUE="XYZApp.class">

  • <PARAM NAME="codebase" VALUE="html/">

  • <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4">

  • <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz">

  • <PARAM NAME="scriptable" VALUE="true">

  • <COMMENT>

  • <EMBED type="application/x-java-applet;jpi-version=1.4" width="200"

  • height="200" align="baseline" code="XYZApp.class"

  • codebase="html/" model="models/HyaluronicAcid.xyz"

  • pluginspage="http://java.sun.com/j2se/1.4/download.html">

  • <NOEMBED>

  • No Java 2 SDK, Standard Edition v 1.4 support for APPLET!!

  • </NOEMBED>

  • </EMBED>

  • </COMMENT>

  • </OBJECT>

  • 3.2?利用IE的條件注釋

    IE識別如下樣式的條件注釋(Conditional Comments):

    ?<!--[if !IE]>

    ??非IE 瀏覽器時的代碼

    ?<![endif]-->

      這個條件注釋只有IE識別,其他瀏覽器會把這兩行作為普通的HTML注釋忽略。因此,可以用下面的形式來適應所有的瀏覽器:

  • <!--[if !IE]> Firefox and others will use outer object -->

  • <object classid="java:Sample2.class"

  • type="application/x-java-applet"

  • archive="Sample2.jar"

  • height="300" width="450" >

  • <!--<![endif]-->

  • <!-- MSIE (Microsoft Internet Explorer) will use inner object -->

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

  • codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab"

  • height="300" width="450" >

  • <param name="code" value="Sample2" />

  • <param name="archive" value="Sample2.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]-->

  •   對于IE瀏覽器,它會忽略條件注釋之間的代碼,因此只會看到<object classid="clsid:..這個標簽內的內容。對于非IE的其他瀏覽器,會忽略HTML注釋,并且不會解釋clsid這個屬性,因此也會忽略& lt;object classid="clsid:..>…</object>之間的內容,也就是只會看到<object classid="java:…的內容。

      這種方法可以適應所有的瀏覽器。

    3.3?利用JavaScript

      各種主流瀏覽器的當前版本都能夠支持JavaScript,因此我們可以用JavaScript來判斷瀏覽器的版本,然后輸出合適的HTML代碼。這種方式能支持大多數主流的瀏覽器,如IE、Netscape Navigator、Firefox等。

    示例如下:

  • <script language="Javascript">

  • var _app = navigator.appName;

  • if (_app == 'Netscape') {

  • document.write('<embed code="Applet1.class"',

  • 'width="200"',

  • 'height="200"', 'type="application/x-java-applet;version=1.5.0">');

  • }

  • 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>

  • 總結

    以上是生活随笔為你收集整理的在多种浏览器中嵌入Applet的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。