5

java を埋め込むための swfobject のような JavaScript クラスを探し、ユーザーが Java を持っていないか、セキュリティ プロンプトを拒否した場合に簡単なフォールバックを行います。

ありがとう、

ジョシュ

4

4 に答える 4

6

かなり簡単に作成できます。

次のように div を設定します。

<div id="java-applet">
Message to user saying that they need Java here
</div>

次に、JavaScriptにJava Plugin Detection ( builder ) を追加します。それが true を返す場合は、次のようにします。

document.getElementById("java-applet").innerHTML = "<applet>stuff here</applet>";
于 2009-07-26T17:31:14.903 に答える
1

通常のようにアプレットを埋め込み、フォールバックを挿入するか、JavaScript スニペットを挿入してオブジェクトを削除します。param 以外にも、テキストを含む段落やオブジェクトを置き換える関数を呼び出す JavaScript など、他の要素を追加できます。

<script type="text/javascript">
  function replace_object(x) {
    $(x)...
  }
</script>
<object x="y" id="some_applet">
  <param name="y" value="z">
  <p>java not available. some alternative here. <!-- option 1 --></p>
  <script type="text/javascript">
    replace_object('some_applet'); // option 2
  </script>
</object>
于 2009-07-26T21:23:06.527 に答える
0

これは役に立ちます!

アプレットを使用してサーバー側からバッチ ファイルをダウンロードしているときに、非常に奇妙な問題が発生しました。

Ajax リクエストがアプレット リクエストと競合しているようです。アプレット ファイルのダウンロードが何らかのソケット例外で中断されました。

アプレットは JRE5.0 で正常に動作します。これは、最近の JRE6.0 へのアップグレードが原因である可能性があります。

<div id="java-applet"></div>
<script>
    var t;
    function startApplet() {
        var attributes = {codebase:'<%=request.getContextPath()%>',
                          code:'<%=appletClass%>',
                          archive:'applet/SignedApplet.jar',
                          width:0, 
                          height:0} ;
        var parameters = {para1:'value1',
                          para2:'value2',
                          java_arguments:'-Xms64m -Xmx512m'
        } ;
        var version = '1.6' ;
        var buildAppletTag = function() {
            var tag = '<applet';
            for (var attribute in attributes){
                tag += (' ' + attribute + '="' + attributes[attribute] + '"');
            }
            tag += ">";
            for (var parameter in parameters){
                tag += '<param name="' + parameter + '" value="' + parameters[parameter] + '"/>';
            }   
            tag += '</applet>';
            return tag;
        };
        document.getElementById("java-applet").innerHTML = buildAppletTag(attributes, parameters, version);
        clearTimeout(t);
    }
    t = setTimeout("startApplet()", 1000); // delayed
</script>
于 2011-06-03T06:49:30.507 に答える