deployJava.js 很难集成,因为它使用document.write 在文档完全加载之前在页面中插入标签。基本上不支持异步加载。
根据the examples from Oracle,我们必须将文件包含在正文中的某处,并在包含后立即调用它。小程序标签将被放置在那里。
如果你想使用 RequireJS 异步加载它,或者如果你想稍后调用它,在页面加载后,下载 uncompressed version 并替换每个出现的:
document.write(...);
作者:
document.getElementsByTagName('body')[0].insertAdjacentHTML('afterbegin', ...);
然后您可以在 JavaScript 中的任何位置调用 deployJava.runApplet。您甚至可以将小程序标签放在页面某处的div 元素中。 HTML 代码:
<body>
...
<div id="appletContainer"></div>
// The include after the div or once the page is loaded
<script type="text/javascript" src="javascript/deployJava.js"></script>
...
</body>
还有文件deployJava.js:
document.getElementById('appletContainer').insertAdjacentHTML('afterbegin', ...);
关于空行,我没有任何解释,但可以使用 CSS 找到解决方法。如果您的小程序没有显示任何 GUI,您可以将 appletContainer 的高度设置为 0。
注意:不要使用display:none隐藏appletContainer,否则你的applet将无法运行。