gpt4 book ai didi

java - 通过 Javascript 杀死 Java Applet

转载 作者:行者123 更新时间:2023-11-30 12:01:02 25 4
gpt4 key购买 nike

我在一家开发公司工作,正在对 Web 应用程序进行重大重新设计,每次单击后重新加载所有内容,以广泛使用 Javascript,因此它实际上感觉像是一个真正的 Web 应用程序。其中一项功能是使用基于 Web 的 Painter(想想 Web 上的 MSPaint),我将其嵌入到按需页面中。绘制并上传图像后,Web 应用程序然后卸载小程序并继续显示文件上传到的目录。

这就是麻烦开始的地方。这一切都适用于 IE 和 Safari,但不适用于 Firefox 3.5(尽管 3.0 完美运行)。 Firebug 告诉我缺少 expando 属性。

我之前开发的 Web 应用程序 Tiparlo 也有类似的问题(事实上,通过 jQuery 对 applet 进行的任何操作都是错误的)但是通过包装一个 div 并控制(隐藏和显示)解决了这个问题div 而不是小程序。不幸的是,这不适用于此 Web 应用程序,因为 Applet 必须被销毁,而不仅仅是隐藏和显示,因为它占用了太多资源,无法在不需要它的整个时间运行。

简而言之:是否可以通过 Javascript 使 Applet 自行销毁?或者:是否有解决 jQuery/expando/applet 问题的方法?我知道小程序在 HTML 4.01 strict 中已被弃用,但现在不能将其更改为对象。

编辑:我添加了一张 Firefox + Firebug 的图片来向您展示实际的错误消息。发布代码无济于事,因为它在所有其他浏览器上都能完美运行,并且是 Firefox 3.5 特定的问题。 Here be pictures

注意:您可以忽略来自 button.js 的 JS Bug。

最佳答案

您始终可以在 iframe 中加载小程序,然后离开加载小程序的页面。这会杀死它。

如果你想从 javascript 调用销毁,你的另一个选择是把这样的东西放进去。

<script>
document.MyApplet.killApplet();
</script>

public void killApplet() {
AccessController.doPrivileged(new PrivilegedAction() {
public Void run() {
// kill the JVM System.exit(0); return null;
}
});
}

这不是杀死小程序的好方法,但在较新的浏览器上它不会抛出 JS 错误,在较旧的浏览器(如 IE6)上它会抛出 js 错误。

关于java - 通过 Javascript 杀死 Java Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1267033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com