跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

JRE1.4.2以上版本,JavaScript调用Applet方法权限不足怎么办?

在JRE1.4.2以上的版本中,你会发现,即使你已经信任了一个Applet的签名,使用JavaScript调用其方法时,仍然可能会遇到权限不足的问题。这让人头疼,不是吗?别急,今天就来聊聊这个问题,让我们一起找到解决办法。

问题分析

为什么会出现这种情况呢?其实,当你用JavaScript调用Applet方法时,Java的安全机制会限制这种跨线程的操作。简单来说,就是JavaScript线程和Applet线程不是同一线程,所以JavaScript线程没有权限直接调用Applet的方法。

解决方案

那怎么办呢?我们可以通过创建一个新的线程来解决权限问题。这个线程由Applet启动,拥有足够的权限。然后,JavaScript方法可以通过这个线程来间接调用Applet的方法。

public class MyApplet extends Applet {
    Thread thread;
    String command;
    Object result;
    boolean isEnd = false;

    public void start() {
        thread = new Thread(new Runnable() {
            public void run() {
                while (!isEnd) {
                    try {
                        synchronized (thread) {
                            thread.wait();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    if (isEnd) return;
                    try {
                        if (
                            

相关文章