从小程序调用 JS:MalformedURLException:未知协议:javascript

Calling JS from Applet: MalformedURLException: unknown protocol: javascript

提问人:user20298 提问时间:10/6/2008 更新时间:10/15/2008 访问量:5302

问:

我读到您可以通过调用 Java Applet 从 Java Applet 调用 JavaScript 代码

JApplet.getAppletContext().showDocument( "javascript:alert('Hello World');" );

但是,当我这样做时,我收到以下错误:

java.net.MalformedURLException: unknown protocol: javascript

如何解决此问题?

Java JavaScript URL

评论


答:

2赞 RuntimeException 10/6/2008 #1
    try {
        this.getAppletContext().showDocument(new URL("javascript:alert('hello world');"));
    }catch(Exception e) {
        e.printStackTrace();
    }

工程!!

也许浏览器没有启用javascript..只是一个猜测

4赞 Rickard 10/15/2008 #2

我得到了和你一样的例外,因为 URL 类不接受 javascript: 作为有效的协议。

不过有一个解决方法;向 URL 构造函数提供 URLStreamHandler。

例:

final URLStreamHandler streamHandler = new URLStreamHandler() {

    @Override
    protected URLConnection openConnection(URL u)
        throws IOException {
        return null;
    }

};

try {
    getAppletContext().showDocument(
        new URL(null, "javascript:alert('It works!');", streamHandler));
} catch (MalformedURLException me) {
    //log or whatever
}

评论

0赞 user20298 10/24/2008
这将在 Firefox 中打开一个新选项卡,但页面和位置地址都是空的。什么也没发生..:/
0赞 user20298 10/24/2008
没关系,显然我在 Ubuntu 上的 Firefox 3.0.3 被窃听了:)它可以在其他计算机上完美运行。谢谢!