我有一个javascript函数,在成功的jQuery AJAX调用之后被调用。
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
为什么?
答案 0 :(得分:0)
我不知道为什么,但我做的任何事都不会让代码工作。我放弃了尝试将内容写入src并决定编写查询字符串以将参数传递给applet本身:
var iframe = jQuery('<iframe id="AppletFrame" width="435" height="410" frameborder="0" src="http://myurl.com/applications/applet.php?user='+user+'&pass='+pass+'&name='+name+'&hash='+hash+'&port='+port+'"></iframe>');
这可行,但不确定这是否是最优雅的解决方案。