У меня есть функция 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-апплет, который в IFRAME, который показан в диалоговом окне JQuery. Это отлично работает, но теперь мне нужно передать значения в java-апплет. Это 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. Что я делаю не так?
EDIT: Как было предложено @TheZuck я добавил deployJava.js с:
doc.write('<script src="https://www.java.com/js/deployJava.js"></script>')
Теперь, по крайней мере я получаю сообщение об ошибке: TypeError: document.getElementById(...) is null
Почему?
Вы пробовали просто включить апплет прямо в родительскую страницу вместо iframe? Вы можете получить более полезную информацию о том, где это происходит. Вы пытались сделать этот код запущенным onDomReady, а не сразу после включения? – Kato
@Kato Я могу просто загрузить applet.html на родительскую страницу, и он отлично работает. Даже эта первая часть моего вопроса, где я помещаю ее в iframe, а затем показываю ее в диалоговом окне, хорошо работает. – Tom
Вы забыли добавить: ? – TheZuck