2009-07-24 123 views
5

尋找像swfobject這樣的JavaScript類來嵌入java,並且如果用戶沒有java或拒絕安全提示,則有一個簡單的回退。java等價於swfobject的

感謝,

喬希

回答

6

你可以很容易地建立一個。

有類似設立這樣一個div:

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

然後加入Java Plugin Detectionbuilder)到您的JavaScript。然後,如果返回true,那麼這樣做:

document.getElementById("java-applet").innerHTML = "<applet>stuff here</applet>"; 
2

只是嵌入的小程序像平時一樣,並插入內回退或插入JavaScript片段刪除對象:除了參數,可以添加其他元素,例如帶有文本或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> 
0

這有助於!

在使用小程序從服務器端進行批量文件下載時,出現了一個非常奇怪的問題。

Ajax請求似乎與applet請求發生衝突,applet文件下載被一些socket異常中斷。

該applet在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>