经过多年成功维护一个使用旧的小程序:
<script src="foo.js"></script>
嵌入Java小程序的方法,我们捂着耳朵唱“啦啦啦!”了。
是时候使用了:
deployJava.runApplet()
当我使用点击处理程序触发此方法时(此处通过 jQuery 在按钮上使用事件监听器,但这并不重要):
$('#button').click(function() {
deployJava.runApplet(attributes, parameters, version);
});
...它删除整个现有文档并用小程序替换它。我只需要知道如何将特定的 DOM 元素定位为小程序的容器,这样我的页面就不会被删除。
它似乎是一个我可以以 target: someElement
形式传递的属性,其中“someElement”是 DOM 对象或元素的 ID 作为字符串。但遗憾的是,我找不到此类属性的文档。
为了完整起见,以下是传递的内容:
/*here is where I imagine there might be an applicable attribute */
var attributes = {
name: "SomeName",
code: "some.class",
archive: "some.jar",
width: 640,
height: 400
};
var parameters = {
someParameter: someValue
};
var version = "1.5";
我可以document.write
重建文档所需的一切,但我相信你们都能想象到这种前景对我来说是多么可怕。
如有任何指点,我们将不胜感激。
最佳答案
作为 Christophe Roussy 的替代品您可以在运行 deployJava.runApplet
时覆盖 document.write
的解决方案。
像这样:
function docWriteWrapper(func) {
var writeTo = document.createElement('del'),
oldwrite = document.write,
content = '';
writeTo.id = "me";
document.write = function(text) {
content += text;
}
func();
writeTo.innerHTML += content;
document.write = oldwrite;
document.body.appendChild(writeTo);
}
然后:
docWriteWrapper(function () {
deployJava.runApplet(attributes, parameters, "1.6");
});
有点老套,但很有魅力;)
关于java - 使用 deployJava.runApplet 定位特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13517790/