2012-03-13 88 views
1

嗯,这是我的麻烦:如何从Java Applet调用JS函数?

我有controlls磁条阅读器的小程序,我需要调用JS功能,当MSR读取卡赶数据,并以表单提交。 问题是当从远程PC o服务器调用applet时,applet无法调用JS函数,但是在本地所有代码均正常工作。 我认为这是浏览器上的权限问题。 这是我的HTML代码:

<html> 
<head> 
    <title>Applet Prueba</title> 
    <script src="jquery-1.7.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() 
    { 
     $("#AppletPrueba")[0].apOpenPrinter(); 
     $("#AppletPrueba")[0].apActivaMSR(); 
    }); 

    function print() 
    { 
     $("#AppletPrueba")[0].apPrintCreditInfo(); 
    } 

    function setTxtBox(texto) 
    { 
     $("#txtBox").val(texto); 
    } 
    </script> 
</head> 
<body> 
    <object id  = "AppletPrueba" 
      classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" 
      width = "1" 
      height = "1"> 
     <param name="code" value="applet.AppletJPos.class"/> 
     <param name="archive" value="SAppletJPos.jar,Sjpos11021.jar,Sjpos191.jar,SNCRJavaPOS39.jar,SNCRJavaPOSClasses.jar,Sxerces.jar"/> 
     <param name="scriptable" value="true"/> 
     <param name="mayscript" value="true"/> 
     <param name="param0" value="1"/> 
     <param name="param1" value="Tienda"/> 
     <param name="param2" value="XXX"/> 
     <param name="param3" value="RUBEN C. FLORES GARNETT"/> 
     <param name="param4" value="09 de Marzo de 2012"/> 
     <param name="param5" value="0.00"/> 
     <param name="param6" value="0.00"/> 
     <param name="param7" value="0.00"/> 
     <param name="param8" value="0.00"/> 
     <param name="param9" value="0.00"/> 
     <param name="param10" value="0.00"/> 
     <param name="param11" value="0"/> 
     <param name="param12" value="0.00"/> 
     <param name="param13" value="0.00"/> 
     <param name="param14" value="0.00"/> 
     <param name="param15" value="0.00"/> 
     <param name="param16" value="0.00"/> 
     <param name="param17" value="0.00"/> 
     <param name="param18" value="0.00"/> 
     <param name="param19" value="0.00"/> 
     <param name="param20" value="0.00"/> 
     <param name="param21" value="0.00"/> 
     <param name="param22" value="0.00"/> 
     <param name="param23" value="0.00"/> 
     <param name="param24" value="1"/> 
    </object> 
    <input type="button" value="Imprime Ticket" onclick="print()" /> 
    <br/> 
    <input type="text" value="" id="txtBox" /> 
</body> 

这是applet调用JS函数的方式:

AppletContext appletCtxt = getAppletContext(); 

...

appletCtxt.showDocument(new URL("javascript: setTxtBox('" + editedCardId[0] + "')")); 

我真的希望有人可以帮助我。

(对不起,如果我的英文不好:P)

回答

1

对此事的Oracle教程很可能是有用的。

Invoking JavaScript Code From an Applet

netscape.javascript.JSObject类使Java小程序,以获取 到JavaScript对象的引用,并与Web 页面交互。

+0

谢谢,这真的很好! – 2012-03-15 17:22:56

+0

我很高兴能帮上忙。 – Dev 2012-03-15 17:36:26