繁体   English   中英

如何在另一个目录中包含来自网页的小程序?

[英]How to include an applet from a web page in a different directory?

我正在尝试使用jZebra打印applet,并且不确定如何从不同目录中的页面使用它。 该示例页面具有以下代码:

<applet 
    id="qz"
    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">
</applet>

如果小程序(qz-print.jar)和另一个文件(qz-print_jnlp.jnlp)与包含该代码的页面位于同一目录中,则可以正常工作。 但是,如果网页位于其他目录中,我不知道要进行哪些更改才能使其正常工作。 看来这是一个琐碎的问题,但我一直在搜索,但找不到答案。

当小程序位于其他目录中时,如何修改上面的代码以使小程序进入网页?

您正在使用的标签:

<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 ),则必须将相对的applet标签更改为:

<param name="jnlp_href" value="../dist/qz-print_jnlp.jnlp">

或最佳地,将标签更改为jnlp的绝对路径:

<param name="jnlp_href" value="/dist/qz-print_jnlp.jnlp">

此外,由于qz找到了加载这些标签的更好方法,我们将它们放在sample.html中。 我建议您使用此处的最新版本。

在撰写本文时,使用标签的最佳方法是: <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标签也应更新。

从您正在使用的示例到我上面提供的示例的三个更改是:

  1. jQuery focus()事件的初始焦点窃取预防
  2. archive=标记,用于与某些版本的Safari兼容。
  3. separate_jvm标记用于在页面加载时加载Java Framework的新实例,这似乎解决了Java 8的一些零星加载问题。

最后,如果您的客户端仍在运行Java 6,我建议您使用deployQZ(); 而是来自sample.html,它使用Oracle的deployJava.js脚本进行Java客户端版本检测。

-Tres

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM