2017-04-15 5 views
1

スローします。次に、このjarファイルmainクラスを実行してjarが正しく作成されていることを確認します。できます。Javascriptが、Javaアプレットのメソッドを呼び出すと、私は、単純なアプレットクラスを持ってはTypeError

は、その後、私は自分のページにこのアプレットを埋め込むしよう:

Uncaught TypeError: Cannot read property 'myMethod' of undefined 

document.MyApplet戻り未定義

私がしようとすることを意味します

<script type="application/javascript"> 
    $(document).ready(function() { 
     console.log(document.MyApplet.myMethod()) 
    }); 
</script> 

<applet archive="myjar.jar" code="com.myapp.MyApplet.class" id="MyApplet" name="MyApplet" width=100 height=100></applet> 

これは私にこのエラーがスローされますこのように呼び出す:

document.getElementById('MyApplet').myMethod(); 

それはこの私をスロー:

Uncaught TypeError: document.getElementById(...).myMethod is not a function 

は、私が何かを見逃していましたか?

私は、このテストした:

アプレットが​​を使用してコンパイルされた

  1. クロム57.0.2987.133(64ビット)
  2. のFirefox 52.0.2(32ビット)。

+0

これを試してみましたか?http://stackoverflow.com/questions/11536455/calling-java-method-in-javascript –

+0

@MohamedAbbasこの回答はAjaxリクエストの作成に関するもので、私の質問には関連していません。 –

+0

updated answer .. –

答えて

0

このタスクの背後にある主な問題は、Firefox、ChormeとSafariの最終バージョンはアプレットをサポートしていませんし、彼らは彼らに

を起動文句を言わないということだったまだある唯一のブラウザはアプレットを起動することができインターネットでありますエクスプローラまた、非常に危険と見なされる明示的なアクセス許可も必要です。

0

はあなたがアプレットを実行するには、次のスクリプトを含める必要がありdocsによるとgetElementById

によって要素をつかむことができ

console.log(document.getElementById('MyApplet').myMethod()) 

を試してみてください。

<script src= 
    "https://www.java.com/js/deployJava.js"></script> 
<script> 
    <!-- applet id can be used to get a reference to 
    the applet object --> 
    var attributes = { id:'MyApplet', 
     code:'jcom.myapp.MyApplet.class', width:1, height:1} ; 
    var parameters = { jnlp_href: 'MyApplet.jnlp'} ; 
    deployJava.runApplet(attributes, parameters, '1.6'); 
</script> 
+0

私は 'Uncaught TypeError:document.getElementById(...)。myMethod is not function'エラーを受け取りました。ブラウザで何かをオンにする必要がありますか? –

+0

hmm ..ただ見つかったhttp://stackoverflow.com/questions/7278626/javascript-to-java-applet-communication –

+0

私はそれを試しました。まだ動作しません。 –

関連する問題