我有一个小程序,它有两种我想使用的方法。在第一种方法中,我正在获取客户端打印机列表。
我想在我的 HTML 页面上组合使用这个打印机列表。用户应从该组合中选择打印机。之后,用户将单击一个按钮进行一些操作。单击该按钮并完成这些操作后,我想调用我的小程序的第二个方法,它获取两个参数,一个是文件对象,另一个是用户已经选择的打印机对象。
我的问题是:
页面加载后,如何获取打印机列表并在我的 HTML 页面上使用它?单击按钮后,如何将参数发送到我的小程序的第二种方法?
我有一个小程序,它有两种我想使用的方法。在第一种方法中,我正在获取客户端打印机列表。
我想在我的 HTML 页面上组合使用这个打印机列表。用户应从该组合中选择打印机。之后,用户将单击一个按钮进行一些操作。单击该按钮并完成这些操作后,我想调用我的小程序的第二个方法,它获取两个参数,一个是文件对象,另一个是用户已经选择的打印机对象。
我的问题是:
页面加载后,如何获取打印机列表并在我的 HTML 页面上使用它?单击按钮后,如何将参数发送到我的小程序的第二种方法?
在 html/jsp 中使用对象 id 标签
<object id="appletId" type="application/x-java-applet"
要获取打印机列表,您应该调用 applet 方法
<script type="text/javascript">
function getPrinters(){
return appletId.getPrinters();
}
</script>
getPrinters
假设小程序具有返回字符串数组的公共方法。
不要使用浏览器组合框。直接在小程序中使用JComboBox或Choice ,让您足不出户即可完成所有工作。如@Roman C 所述,这是可能的,但对于您描述的任务来说似乎太复杂了。
To have my applet work;
1- I exported the applet as jar file(named as printApplet.jar) and copied it under the same folder as my xhtml page.
2- I put the applet in xhtml as below;
<applet id="myApplet"
code="com.xxx.yyy.console.action.PrintApplet"
archive="printApplet.jar" width="1" height="1">
</applet>
3- I created a method `enter code here`in the applet which gets printer names as string and has comma(,) between the names.
4- I called the applet methods using javascript as below;
<script type="text/javascript" >
//<![CDATA[
function getPrinters() {
var aplt = document.getElementById("myApplet");
var printers = aplt.getPrinterNames();
var p = printers.split(',');
var c = document.getElementById("combo");
for ( var i = 0; i < p.length; i++) {
var o = document.createElement("option");
o.text = p[i];
o.value = i;
try {
c.add(o, null); //Standard
} catch (error) {
c.add(o); // IE only
}
}
}
//]]>
</script>