2011-02-23 12 views
8

Estoy tratando de cargar jquery en Rhino como lo demuestra este enlace here. Pero me siguen dando el siguiente error:jquery en rhino

line 1086: uncaught JavaScript runtime exception: TypeError: Cannot call method "importNode" of null 

creo que es que jQuery está fallando para cargar por completo - pero no tengo ni idea de por qué. Estoy usando el mismo archivo index.html que el autor publicó en el control de código fuente.

Aquí está la huella de mi consola Rhino:

js> load("/temp/env.js"); 
js> window.location = '/temp/index.html'; 
/temp/index.html 
js> load("/temp/jquery.js"); 
js: "/temp/jquery.js", line 1086: uncaught JavaScript runtime exception: TypeError: Cannot call method "importNode" of null 
    at /temp/jquery.js:1086 
    at /temp/jquery.js:1079 
    at /temp/jquery.js:16 
    at <stdin>:41 

¿Alguna idea?

Respuesta

5

Estaba usando una versión OLD del archivo env.js. Resulta que el autor realmente corrió con él y lo movió a sus propios sitios, etc., etc.

Lo nuevo es here.

Tan pronto como comencé a usarlo, estaba dorado con jQuery 1.5.

+0

Intenté su respuesta, pero estoy obteniendo 3 errores de tiempo de ejecución Intenté cargar todas las versiones de jquery pero no tuve éxito en hacer lo mismo ... Por favor, ayúdenme ... + 1 en Advance – Wazzzy

+0

Lo único que puedo sugerir es usar las últimas versiones de ambas bibliotecas, así fue como lo hice funcionar. Sin embargo, la advertencia es que, aunque puede funcionar en la consola de Rhino, tenga en cuenta que funciones como 'carga' solo están disponibles en el shell de Rhino y no pueden invocarse en código dinámico (tiempo de ejecución de Java). Buena suerte. – javamonkey79

+0

Gracias por la ayuda. Lo agradezco ... – Wazzzy

3

No creo jQuery (y muchas bibliotecas JS otra web) funciona en Rhino, ya que el tiempo de ejecución de JavaScript no proporciona los esperados "globales" del navegador como "documento", "navegador", etc. El mensaje de error su lista indica que la biblioteca está tratando de leer un atributo (o llamar a un método) de algún objeto (presumiblemente navegador) que no existe en el entorno de Rhino.

El proyecto "env.js" debería hacer exactamente este tipo de maqueta de entorno de navegador, pero parece ser experimental y podría no ser compatible con la versión de jQuery que está intentando usar.

+0

¿Puede usted no establecidos ellas de alguna manera? Creo que esa puede ser la intención detrás del env.js del autor. – javamonkey79

+0

Lo que más me desconcierta es el hecho de que el jQuery dist que tengo no tiene nada que parezca relacionado en la línea 1086, y tampoco puedo encontrar 'importNode' en ninguna parte. : | – javamonkey79

-1

Creo que jQuery es inútil en Rhino, no tienes ni DOM ni Ajax. JavaScript 5 (soportado en Rhino 1.7R3) tiene muchos temores requeridos, como el objeto global JSON o métodos de matriz como forEach() o map().

+0

Puedes cargar un archivo externo y luego tienes un DOM para recorrer. – isomorphismes

+1

http://www.envjs.com/doc/guides: "El objetivo de' Envjs' es proporcionar una implementación javascript altamente portátil del navegador como un entorno de scripting (a menudo referido como ** "sin cabeza") navegador **) ". – isomorphismes

3

que tuvieron éxito en la gestión de jquery en Rhinojs utilizando las instrucciones de aquí:

http://geek.michaelgrace.org/2011/09/rhino-and-envjs/

Mis pasos:

wget ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_7R2.zip 
wget http://www.envjs.com/dist/env.rhino.1.2.js 
wget http://code.jquery.com/jquery-1.8.2.js 
unzip rhino1_7R2.zip 
java -jar rhino1_7R2/js.jar 
load("env.rhino.1.2.js"); 
load("jquery-1.8.2.js");