Visual Basic.NET - Spidermonkey para vb.net

 
Vista:

Spidermonkey para vb.net

Publicado por Duende (9 intervenciones) el 12/11/2007 16:42:57
Hola de nuevo.

Necesito que mediante un texto en un arhivo .txt por ejemplo. mediante vb.net ejecutarlo.
El texto casualmente esta en java script. es decir, necesito que un texto almacenado que contiene codigo en java script sea ejecutado.
Es como el Spidermonkey pero en vez de para de C, para VB.net.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Spidermonkey para vb.net

Publicado por Duende (9 intervenciones) el 14/11/2007 12:51:15
Soy yo mismo ya lo he resuelto y lo escribo aqui por si alguient iene elmismo problema ujno parecido.

Para empezar se necsitan importar dos librearias

Imports SHDocVw.InternetExplorerClass
Imports mshtml

' Hay que buscar las dll de mismo nombre

Dim cadena_java As String = "function foo(valor){return valor + 5;}; var e=document.createElement('div');e.id='divResult';e.innerHTML = foo(4);document.body.appendChild(e);"
Dim k As New SHDocVw.InternetExplorer
Dim ruta As String = Directory.GetCurrentDirectory & "\tmp.htm"
k.Visible = False
k.Navigate(ruta)

Dim doc2 As mshtml.IHTMLDocument2 = k.Document
Dim doc3 As mshtml.IHTMLDocument3 = doc2
Dim win2 As mshtml.IHTMLWindow2 = doc2.parentWindow
If (Not win2 Is Nothing) Then
win2.execScript(cadena_java, "javascript")
Dim result As String = doc3.getElementById("divResult").innerHTML()
End If

Ese es el codigo de ejemplo.
cadena_java es la funcion ('muy sosa pero vale para el ejemplo') en java script.
ruta es un string con la ruta de un archivo html donde se pueda ejecutar el javascript.

con visible a false para que no se vea saliendo una ventanita y navigate para acceder a ella.

que se declaren dos tipos de mshtml.IHTMLDocumentX es pq varia en los procedimientos que tiene nada mas.
y win2.execScript(cadena_java, "javascript")es ql ke ejecuta la funcion y acontinuación el lenguaje, creo recordar que si no pones anda por defecto lo ejecuta en javascript.

Y por ultimo Dim result As String = doc3.getElementById("divResult").innerHTML()
Devuelve el valor que la propia funcion en javascript dice.

Como dato "divResult" es la variable de java Script declarada que retornara.

Esperoque este claro y que a alguien le valga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar