0

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

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");在小程序中重定向用户,但它不会这样做。除了_blank,我还尝试过不同的东西,比如_self

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

4

1 回答 1

1

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

首先,引用AppletContext-JavaDoc:

无效的显示文档(URL 网址)

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

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

void showDocument(URL url, 字符串目标)

[...] 小程序查看器或浏览器可以随意忽略showDocument

因此,如果您没有在浏览器中查看 Applet,或者浏览器确实决定忽略您的呼叫,您将无能为力。


此外,它似乎取决于 VM 的实现,如果它甚至首先被支持。请参阅 Apple Mailing-List 中的这篇较早的帖子

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

  • 火狐浏览器 12.0
  • Java(TM) SE 运行时环境(内部版本 1.7.0_04-b20),64 位
  • 全部在 Linux 上
于 2012-06-27T15:43:26.360 回答