当我仅在 IE 中从 Java Applet 调用 Java 脚本函数时,我收到拒绝访问异常。(用更新的信息修改了我原来的问题。)
这是我的 HTML 代码
<script type="text/javascript">
function uploadComplete() {
alert("in Upload Complete");
ju.doneUpload(true);
}
</script>
ju
在从不同 JavaScript 文件调用 doneUpload 的同一页面中全局声明。我在我的小程序标签中包含了 MAYSCRIPT。
Java 代码【添加 AccessController 后】:
AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
JSObject scriptObject = getScriptObject(uploadDialogBox.applet);
if(scriptObject != null) {
try {
// this is the call where it throws an exception
**scriptObject.call("uploadComplete", null);**
} catch(JSException e) {
System.out.println("exception " + e.getMessage()
+ " WrappendException " + e.getWrappedException()
+ " stack trace " + e.getStackTrace());
}
}
return null;
}
});
private JSObject getScriptObject(JApplet appletInstance) {
JSObject result = null;
// JSObject doc = null;
try {
result = JSObject.getWindow(appletInstance);
// doc = (JSObject) result.getMember("document");
} catch (JSException e) {
System.out.println("Exception in getScriptObject : " + e.getMessage()
+ " Wrappend exception " + e.getWrappedException());
}
return result;
}
它抛出一个JSException: Access is denied
中的alert
函数uploadComplete
没有被调用。我在这里做错了什么?