2010-10-21 6 views
2

J'utilise jQuery avec jsdom dans mon application node.js.jQuery plugins avec node.js

En outre, je veux utiliser les plugins jQuery (par exemple jQuery.diff), mais je ne trouve pas comment faire cela. Y a-t-il un moyen de s'en sortir?

Répondre

4

Créez une balise de script dans votre document pour y charger votre script. Exemple:

createWindow = function(fn) { 
    var window = jsdom.jsdom().createWindow(), 
     script = window.document.createElement('script'); 

    jsdom.jQueryify(window, function() { 
     script.src = 'file://' + __dirname + '/some.library.js'; 
     script.onload = function() { 
      if (this.readyState === 'complete') { 
       fn(window); 
      } 
     } 
    }); 
} 

createWindow(function(window) { 
    // Do your jQuery stuff: 
    window.$('body').hide(); 
}); 

Source: http://blog.davidpadbury.com/2010/10/03/using-nodejs-to-render-js-charts-on-server/

+0

Juste pour clarifier, cette méthode jQueryify fait effectivement la même chose que l'appel de chargement some.library.js. Jetez un oeil à http://github.com/tmpvar/jsdom/blob/master/lib/jsdom.js#L34. –

+0

Juste pour vous faire gagner du temps: Il y a actuellement quelques problèmes avec jsdom et nodejs> = 0.2.3. Dans le contexte d'un script, la fenêtre évalue à {} en raison de la façon dont le bac à sable a été modifié. – balu

+0

Merci. Ça marche. J'aurais dû lire attentivement le document du paquet. – mhayashi

0

J'ai une bibliothèque que je travaille sur ce qui est un port de jquery au noeud - bit.ly/node-jquery

Le but est de faire des bibliothèques ou des fonctions var $ = require('node-jquery') et l'utilisation jquery comme normale

+0

Merci, mais je peux utiliser jQuery avec jsdom.jQuerify(). Je veux savoir comment évaluer le fichier .js d'un plugin jQuery dans l'application node.js. – mhayashi