【发布时间】:2009-12-09 20:08:51
【问题描述】:
当我仅在 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
uploadComplete 中的 alert 函数未被调用。我在这里做错了什么?
【问题讨论】:
-
这里的代码是什么,你的文字是什么,很难读懂……你能在表示代码时使用 StackOverFlow.com 语法吗? (每行代码前放4个空格,放入codebox)
-
我已经格式化了代码以产生更好的响应。
-
嗯……他可能没有得到“更好”的回应……但至少现在格式正确。
-
您使用的是什么操作系统/Java 版本?
-
使用 Windows XP 和 JRE 版本 1.6.0_05
标签: java javascript internet-explorer liveconnect