“getAppletContext()。showDocument(新网址”不重定向

时间:2012-06-27 14:33:24

标签: java applet

我已在主代码中集成了以下代码:

import java.applet.*;
import java.awt.Graphics;
import java.net.MalformedURLException;
import java.net.URL;

public class AppletExample extends Applet {

    public void init() {

       try {
             getAppletContext().showDocument(new URL("http://www.google.com"), "_blank");
       }
       catch (MalformedURLException ex) {
            System.out.println(ex.getMessage());
       }
    }

    public void paint( Graphics g ) {

       g.drawString("Go Google", 0,100);
    }

}

我的想法是getAppletContext().showDocument(new URL("http://www.google.com"), "_blank");会将用户重定向到applet中,但它只是不会这样做。除了_blank之外,我尝试了不同的东西,比如_self

怎么办?为什么不重定向?

1 个答案:

答案 0 :(得分:1)

有多种情况可能会发生这种情况:

首先,引用AppletContext - JavaDoc:

  

void showDocument(URL url)

     

请求浏览器或小程序查看器显示指示的网页   通过url参数。浏览器或applet查看器确定哪个   用于显示网页的窗口或框架。 此方法可能会被忽略   通过不是浏览器的applet上下文。

并引用您的特定方法调用(这是重载版本):

  

void showDocument(URL url, String target)

     

[...] applet查看器或浏览器可以忽略showDocument

因此,如果您没有在浏览器中查看Applet,或者浏览器决定忽略您的呼叫,则无法对其进行任何操作。


此外,如果首先支持VM,它似乎依赖于VM实现。请参阅此older post from an Apple Mailing-List

最后但并非最不重要的是,当我自己尝试时,它有效,但请求被PopUp-Blocker阻止(并且必须手动授予)。我用过:

  • Mozilla Firefox 12.0
  • Java(TM)SE运行时环境(版本1.7.0_04-b20),64位
  • 全部在Linux上