0

jQuery AJAX 呼び出しが成功した後に呼び出される JavaScript 関数があります。

 function launchTool(user, pass, name, hash, port) 
 {
     var iframe = jQuery('<iframe id="AppletFrame" src="http://www.mysite.com/applications/applet.html"></iframe>');
     var $dialog = jQuery('<div></div>');
     $dialog.append(iframe);
     $dialog.dialog({
         title: name,
         width: '425',
         height: '400',
         modal: true,
         close: function () {
             iframe.attr("src", "");
         }
     });
 }

これにより、jQuery ダイアログに表示される iframe にある Java アプレットが開きます。これはうまく機能しますが、Java アプレットに値を渡す必要があります。この投稿はまさに私が必要としているものです。

だから私はこれを試しました:

function launchTool(user, pass, name, hash, port) 
 {

     var iframe = jQuery('<iframe id="AppletFrame" src="about:blank"></iframe>');

     var doc = document.getElementById('AppletFrame').contentWindow.document;
     doc.open();
     doc.write('<script>');
     doc.write('var attributes = {code:"com.test.MyApplet", width:400, height:375};');
     doc.write('var parameters = {jnlp_href: "http://'+window.location.host+'/applications/MyConfigApplet.jnlp", user: "'+user+'", pass: "'+pass+'", name: "'+name+'", hash: "'+hash+'", port: "'+port+'"};');
     doc.write('</script>');
     doc.write('deployJava.runApplet(attributes, parameters, "1.6");');
     doc.close();

      var $dialog = jQuery('<div></div>');
     $dialog.append(iframe);
     $dialog.dialog({
         title: name,
         width: '425',
         height: '400',
         modal: true,
         close: function () {
             iframe.attr("src", "");
         }
     });
 }

applet.html基本的に、実際の例の内容をコードに追加しようとしました。エラーは表示されず、空の iframe だけが表示されます。これは実際には src 属性には当てはまらないと思います。私は何を間違っていますか?

編集: @TheZuck で提案されているように、私は deployJava.js を追加しました:

doc.write('<script src="https://www.java.com/js/deployJava.js"></script>')

少なくともエラーが発生します:TypeError: document.getElementById(...) is null

なんで?

4

1 に答える 1