在IE中从Java调用JavaScript函数时,访问被拒绝
当我仅在IE中从Java小程序调用Java脚本函数时,我遇到访问被拒绝的异常。(用更新的信息修改了我的原始问题。) 这是我的HTML代码在IE中从Java调用JavaScript函数时,访问被拒绝,java,javascript,internet-explorer,liveconnect,Java,Javascript,Internet Explorer,Liveconnect,当我仅在IE中从Java小程序调用Java脚本函数时,我遇到访问被拒绝的异常。(用更新的信息修改了我的原始问题。) 这是我的HTML代码 <script type="text/javascript"> function uploadComplete() { alert("in Upload Complete"); ju.doneUpload(true); } </script> })) 它抛出一个JSException:访问被拒绝
<script type="text/javascript">
function uploadComplete() {
alert("in Upload Complete");
ju.doneUpload(true);
}
</script>
}))
它抛出一个JSException:访问被拒绝
未调用uploadComplete
中的alert
函数。我做错了什么 有帮助吗
Sun论坛上该答案的摘要:
你好,我也有同样的问题。我解决了,您只需要实现如下applets方法:
public void f() {
AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
// do something
return null;
}
});
}
很难阅读这里的代码和文本。。。在表示代码时,能否使用StackOverFlow.com语法?(在每行代码前面放置4个空格将其放入一个代码框)我已格式化代码以生成更好的响应。。。他可能没有得到“更好”的回答。。。但至少现在它的格式正确了。您使用的是什么OS/Java版本?使用Windows XP和JRE 1.6.0版本仍然没有帮助。。。我在代码上包装了AccessController,但仍然拒绝访问异常。我应该检查applet.policy还是crossdomain.xml?在URL=newURL(“javascript:uploadComplete()”)之前,我已经显示了showDocumnet;uploadDialogBox.applet.getAppletContext().showDocument(url,“_self”);但它在IE中不起作用,但在FF中起作用。所以我们尝试了liveconnect作为替代。实际上,在AccessController上包装我的代码后,它在FF中工作,但在IE中不工作。所以归结到浏览器问题?当scriptObject.call(“uploadComplete”,null)时,它给出“访问被拒绝”;我猜这是一个浏览器问题,您的IE可能已被锁定,不允许外部访问DOM。
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;
}
public void f() {
AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
// do something
return null;
}
});
}
getAppletContext().showDocument(new URL("javascript:uploadComplete()"));