Eclipse允许您使用 sun.applet.AppletViewer 调试applet。它实际上将启动applet,运行它并模拟完整的浏览器运行时。如果您的applet中有javascript操作代码,这将导致JSException,因为当前上下文不是真正的JS启用引擎。
您如何解决这个问题?我可以看到几条可能的路径:
感谢您的想法。
答案 0 :(得分:1)
不是故障安全,而是我设法提出的可行解决方案:
private void notifySelectionState(){
JSObject jsObject = null;
try {
jsObject = JSObject.getWindow(applet);
// An exception can be thrown here (hopefully) only is running in debug environment...
} catch (JSException e) {
// So actually what I'm doing here is checking (in a very lame fashion) for if I'm in a the browser
// content or in the AppletViewer
}
if (jsObject != null) {
jsObject.call(...);
}
}
答案 1 :(得分:0)
在某些较旧的浏览器上,JSObject将抛出通用的RuntimeExceptions而不是JSException。因此,您可能希望将网络更宽一些,并在包装器中留下好评。