您正在使用的标签:
<param name="jnlp_href" value="qz-print_jnlp.jnlp">
相当于这个:(注意“./”):
<param name="jnlp_href" value="./qz-print_jnlp.jnlp">
Java 使用绝对或相对路径,就像图像标签 <img src="./foo.png />
因此,如果您将小程序放在一个名为“dist”的文件夹中(即http://mysite/dist/qz-print.jar),但您的页面位于另一个名为“web”的文件夹中(即http://mysite/web/mypage.html),那么您将不得不更改您的与此相关的小程序标签:
<param name="jnlp_href" value="../dist/qz-print_jnlp.jnlp">
或者最好将标签更改为 jnlp 的绝对路径:
<param name="jnlp_href" value="/dist/qz-print_jnlp.jnlp">
此外,由于 qz 找到了更好的方法来加载这些标签,我们将它们放在 sample.html 中。我建议您使用来自here 的最新版本。
在撰写本文时,使用标签的最佳方式是:
<applet id="qz" archive="./qz-print.jar" name="QZ Print Plugin" code="qz.PrintApplet.class" width="55" height="55">
<param name="jnlp_href" value="qz-print_jnlp.jnlp">
<param name="cache_option" value="plugin">
<param name="disable_logging" value="false">
<param name="initial_focus" value="false">
<param name="separate_jvm" value="true">
</applet><br />
注意归档标签和jnlp标签一样应该更新。
从您使用的示例到我上面提供的示例的三个变化是:
- jQuery focus() 事件的初始焦点窃取预防
-
archive= 标签用于与某些版本的 Safari 兼容。
-
separate_jvm 标签用于在页面加载时加载 Java 框架的新实例,这似乎解决了 Java 8 的一些零星加载问题。
最后,如果您的客户端仍在运行 Java 6,我建议您改用 sample.html 中的 deployQZ();,它使用 Oracle 的 deployJava.js 脚本进行 Java 客户端版本检测。
-特雷斯