Bonjour,
J'essai d'utiliser un script "js" existant au sein d'une application JAVA.
Le probl�me actuel est que ce script utilise l'objet "document" mis en place automatiquement par les browser representant la page html � traiter.
Cet objet �tant normalement un objet representant le standard w3c.dom j'ai bien essay� de placer un objet impl�mentant l'interface org.w3c.dom.Document dans le context du script mais sans succ�s.
Voici comment je charge le script :
Ensuite voici comment je l'execute:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public static ScriptEngine createGooglePrettifyEngine() { ScriptEngineManager scriptMgr = new ScriptEngineManager(); ScriptEngine jsEngine = scriptMgr.getEngineByName("JavaScript"); InputStream is = Prettifier.class.getResourceAsStream("prettify/prettify.js"); try { Reader reader = new InputStreamReader(is); jsEngine.eval(reader); return jsEngine; } catch (ScriptException ex) { ex.printStackTrace(); } return null; }
Le 1er probl�me constat� concerne les profils des m�thodes.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 InputStream is = .....; Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse( is ); ScriptEngine prettifier = createGooglePrettifyEngine(); Invocable invocable = (Invocable)prettifier; prettifier.put("document" , document ); String prettified = (String)invocable.invokeFunction("prettyPrint");
Par exemple la m�thode getElementsByTagName
- Dans org.w3c.dom.Document cette m�thode retourne une NodeList
- Dans le javascript cette m�thode retourne un array
Alors j'ai d�cid� d'utiliser la d�l�guation afin de creer un objet ayant des profils de m�thodes ad�quat. mais de fils en aiguille, ca me fait r��crire la puparts des objets DOM sans pour autant m'en sortir.
Alors comment mettre en place un objet "document" au context du script qui soit conforme ??
Partager