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