Eps*_*ool 2 html javascript css java deployjava
我有一个网站,我正在使用Java小程序,并在页面的头部区域包含deployJava.js加载标记.但是,当我在Chrome调试器中看到生成的HTML时,此脚本会立即打破我的头部内容,因此其他头部内容会出现在body标签中!
你可以在我的网站上看到它http://viva-games.ru/
deployJava也会插入一个embed标签(在正文打开后),这样你就可以在页面顶部看到一个空行.
我做错了什么?
deployJava.js因为它用于document.write在文档完全加载之前在页面中插入标记,所以很难集成.基本上,它不支持异步加载.
根据Oracle的示例,我们必须将文件包含在正文中的某个位置,并在包含之后立即调用它.小程序标签将放在那里.
如果要使用RequireJS异步加载它,或者如果要稍后调用它,则在加载页面后,下载未压缩的版本并替换每次出现的:
document.write(...);
Run Code Online (Sandbox Code Playgroud)
通过:
document.getElementsByTagName('body')[0].insertAdjacentHTML('afterbegin', ...);
Run Code Online (Sandbox Code Playgroud)
然后你可以deployJava.runApplet在JavaScript中的任何地方打电话.您甚至可以将applet标记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>
Run Code Online (Sandbox Code Playgroud)
和文件deployJava.js:
document.getElementById('appletContainer').insertAdjacentHTML('afterbegin', ...);
Run Code Online (Sandbox Code Playgroud)
关于空行,我没有任何解释,但可以使用CSS找到解决方法.如果您的applet没有显示任何GUI,您可以将appletContainer的高度设置为0.
注意:不要使用appletContainer display:none,否则你的applet将无法运行.