Как вызвать функции JS из Java-апплета? - PullRequest
1 голос
/ 13 марта 2012

Ну, это моя проблема:

У меня есть апплет, который управляет считывателем магнитных полос, и мне нужно вызвать функцию JS, когда MSR читает карту, чтобы перехватить данные и отправить их в форме.Проблема в том, что апплет не может вызывать функции 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>

И вот как апплет вызывает функцию JS:

AppletContext appletCtxt = getAppletContext();

...

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

Я действительно надеюсь, что кто-нибудь может мне помочь.

(извините, если мой английский плохой: P)

1 Ответ

1 голос
/ 13 марта 2012

Возможно, будет полезно руководство Oracle по этому вопросу.

Вызов JavaScript-кода из апплета

Класс netscape.javascript.JSObject позволяет Java-апплетамполучить ссылку на объекты JavaScript и взаимодействовать с веб-страницей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...