我有一個javascript函數在成功的jQuery AJAX調用後被調用。將javascript添加到iframe src屬性
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", "");
}
});
}
這將打開一個java applet,它位於一個顯示在jQuery對話框中的iframe中。這很好,但現在我需要將值傳遞給java applet。這post看起來正是我所需要的。
所以,我想這一點:
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
爲什麼?
您是否嘗試過將小程序直接放入父頁而不是iframe?你可能會得到更多有用的反饋,告訴他們哪裏出了問題。你有沒有嘗試讓代碼運行onDomReady而不是立即包含? – Kato 2013-05-01 19:27:18
@Kato我可以在父頁面上加載applet.html,它工作正常。即使我的問題的第一部分放在iframe中,然後在對話框中顯示它也很好。 – Tom 2013-05-01 19:56:29
您忘記添加: ? – TheZuck 2013-05-01 20:14:56