2

我创建了一个小程序;它使用如下部署工具包进行部署(URL 是假的):

<script type="text/javascript" 
             src="https://www.java.com/js/deployJava.js"></script>
<script>
var attributes = {
        code:'br.com.brandizzi.adam.applet.MyApplet.class',
        archive:'http://adam.brandizzi.com.br/html/applet.jar',
        width : 50,
        height : 1
    };
    var parameters = {
        fontSize : 1,
    };
    var version = '1.6';
    deployJava.runApplet(attributes, parameters, version);
</script>

它运作良好。然而,幸运的是,我通过一台没有 JVM 的机器访问了我的站点,并且它总是被重定向到http://www.java.com - 正如文档所述

如果客户端没有所需的最低 JRE 软件版本,Deployment Toolkit 脚本会将浏览器重定向到http://www.java.com以允许用户下载最新的 JRE 软件。在某些平台上,用户可能会在查看包含小程序的网页之前被重定向。

有没有办法避免这种重定向?页面可以在没有 JVM 的情况下运行良好,小程序只是一点点改进。无论如何,我们的用户可能会对这种重定向感到非常困惑,他们甚至没有安装 JVM 的权限。

4

3 回答 3

3

如果你看一下 deployJava.js 脚本,runApplet 函数是这样说的:

     /**
     * Ensures that an appropriate JRE is installed and then runs an applet.
     * minimumVersion is of the form #[.#[.#[_#]]], and is the minimum
     * JRE version necessary to run this applet.  minimumVersion is optional,
     * defaulting to the value "1.1" (which matches any JRE).
     * If an equal or greater JRE is detected, runApplet() will call
     * writeAppletTag(attributes, parameters) to output the applet tag,
     * otherwise it will call installJRE(minimumVersion + '+').

所以如果你这样打电话

deployJava.runApplet(attributes, parameters, null);

或者像这样

deployJava.runApplet(attributes, parameters, 'undefined');

或者像这样

deployJava.runApplet(attributes, parameters, '1.1');

它只会检查是否安装Java ,然后才会重定向到 java.com 进行安装。既然你有一个小程序,你确实需要 Java :)

或者,您可以直接调用deployJava.writeAppletTag(attributes, parameters)

    /**
     * Outputs an applet tag with the specified attributes and parameters, where
     * both attributes and parameters are associative arrays.  Each key/value
     * pair in attributes becomes an attribute of the applet tag itself, while
     * key/value pairs in parameters become <PARAM> tags.  No version checking
     * or other special behaviors are performed; the tag is simply written to
     * the page using document.writeln().
     *
     * As document.writeln() is generally only safe to use while the page is
     * being rendered, you should never call this function after the page
     * has been completed.
     */
于 2013-02-21T15:28:38.473 回答
1

使用 Deployment Toolkit 的全部意义在于,如果用户没有 JVM,它会提示他们安装 JVM,以便您的 applet 可以运行。如果您不希望它们被提示,那么就不要使用部署工具包。

如果他们已经安装了合适的 JVM,那么您的小程序将运行。如果没有,页面的其余部分应该正常加载。

于 2013-02-14T14:30:54.433 回答
0

您可以使用deployJava.jsgetJREs中的函数。

于 2014-01-23T20:10:51.800 回答