showDocument()在使用Java 7 / Java 6u27的IE8中不显示新窗口

时间:2011-10-18 15:20:28

标签: java internet-explorer applet

我有一个与Java插件交互的Java Applet,用于在命名浏览器窗口中显示文档(只是一个URL):

public class TestApplet extends Applet {
    @Override
    public void init() {
        super.init();

        final JButton showButton = new JButton("Show Google!");

        showButton.addActionListener(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                try {
                    getAppletContext().showDocument(new URL("http://google.com"), "Some Window Title");
                } catch (MalformedURLException e1) {
                    e1.printStackTrace();
                }
            }
        });

        add(showButton);
    }
}

这在历史上有效,但从Java 7和Java 6u27开始,窗口无法在Internet Explorer中打开(在IE 8中测试)。如果我使用_blank作为窗口标题(目标)而不是Google,则窗口会正确打开(尽管每次都在新窗口中)。

我已经找到了针对6u27修复的错误:

还有其他人经历过同样的行为吗?你找到了解决方法(除了使用“_blank”)吗?

修改

更新了示例。我实际上并没有使用“Google”作为目标,我正在使用“Some Window Title”(对不起!)。看起来这个问题对于名称中带有空格的目标来说是唯一的。

2 个答案:

答案 0 :(得分:1)

  

看起来这个问题对于名称中包含空格的目标来说是唯一的。

两种可能的解决方案:

  1. 将“”替换为“%20”
  2. 请勿在目标名称中使用空格!(虽然我认为这样做会毫无疑问。)

答案 1 :(得分:1)

尝试使用此代码,它应该可以正常工作。

Desktop desktop = Desktop.getDesktop();
        desktop.browse(new URI(info));