IEでのみJavaアプレットから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
は呼び出されません。私はここで何が間違っているのですか?