Pregunta

  public static native void doConnect() /*-{
            $wnd.jQuery(document).trigger('connect',
                    {
                    jid: 'sss',
                    password: 'sss'
                }

                );

        }-*/;

he intentado todo lo anterior, pero no hay ningún error en Firebug o GWT modo de host consola (por lo que no puede saber si el código es el éxito o no). Puede que lo que sé es este el camino correcto llamar jQuery gatillo? pero cuando pongo alerta () en lazo ( 'conectar'), no fue llamado

archivo dentro de Js

    $(document).bind('connect', function (ev, data) { 
alert('not call.....at all');

        var conn = new Strophe.Connection(
            "http://bosh/xmpp-httpbind");

        conn.connect(data.jid, data.password, function (status) {
            if (status === Strophe.Status.CONNECTED) {
                $(document).trigger('connected');
            } else if (status === Strophe.Status.DISCONNECTED) {
                $(document).trigger('disconnected');
            }
        });

        Hello.connection = conn;
    });
¿Fue útil?

Solución

tuve temas similares al usar jQuery UI con GWT - no hay errores en el modo dev / consola, sin embargo, el código no se comportan como yo quería. La razón era que jQuery (y esos marcos) se extienden / cambiar muchos elementos básicos de JavaScript y esperan que permanezca de esa manera - sin embargo, el código de GWT (es decir, también las cosas JSNI) se ejecuta a partir de una "limpia" iframe (de modo que ninguna externa marcos puede meterse con la lengua y la causa de algunos errores extraños en GWT, es por eso que tiene que referencia a la ventana principal a través de $wnd).

Me gustaría sugerir mover su función doConnect a la página de acogida (o un archivo JS externo vinculado a la página de acogida) y en lugar de simplemente llamar a esa función a partir de su recibo de JSNI:

public static native void doConnect() /*-{
   $wnd._doConnect('sss','sss'); //_doConnect defined in the host page
}-*/;

O proporcionar funciones auxiliares que devuelven matrices, etc., desde la página de acogida, de manera que incluyan todos los cambios que hizo jQuery y espera.

Otros consejos

Es un poco tarde para esta respuesta, pero su código original no funcionó debido a un simple error: Ha utilizado adecuadamente $win en lugar de window pero algunos caracteres más tarde usted tiene document utiliza en lugar de $doc:)

public static native void doConnect() /*-{
    $wnd.jQuery($doc).trigger($wnd.jQuery.Event('connect', {
        jid: 'sss',
        password: 'sss'
    }));
}-*/;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top