从Applet调用JS:MalformedURLException:未知协议:javascript

Calling JS from Applet: MalformedURLException: unknown protocol: javascript

本文关键字:未知 协议 javascript MalformedURLException 调用 JS Applet      更新时间:2023-09-26

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

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

然而,当我这样做时,我会得到以下错误:

java.net.MalformedURLException: unknown protocol: javascript

我该如何解决这个问题?

我得到了与您相同的异常,因为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
}
    try {
        this.getAppletContext().showDocument(new URL("javascript:alert('hello world');"));
    }catch(Exception e) {
        e.printStackTrace();
    }

工作!!

也许浏览器没有启用javascript。。只是猜测