java を埋め込むための swfobject のような JavaScript クラスを探し、ユーザーが Java を持っていないか、セキュリティ プロンプトを拒否した場合に簡単なフォールバックを行います。
ありがとう、
ジョシュ
java を埋め込むための swfobject のような JavaScript クラスを探し、ユーザーが Java を持っていないか、セキュリティ プロンプトを拒否した場合に簡単なフォールバックを行います。
ありがとう、
ジョシュ
かなり簡単に作成できます。
次のように 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>";
通常のようにアプレットを埋め込み、フォールバックを挿入するか、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>
これは役に立ちます!
アプレットを使用してサーバー側からバッチ ファイルをダウンロードしているときに、非常に奇妙な問題が発生しました。
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>