2009-08-12 15 views
6

Tengo un problema ya que envolví mis funciones de javascript dentro de un espacio de nombres. La versión 1 de mi código funcionó bien. Originalmente, para llamar al javascript desde el interior de Silverlight Solía ​​usar este código:¿Cómo Silverlight invoca función Javascript en un espacio de nombres?

HtmlPage.Window.Invoke("hideMyDiv"); 

Mi Javascript veía así:

function hideMyDiv() { 
$('#MyDiv').fadeOut(); 

}

Ahora, he refactorizado mi javascript estar contenido en un espacio de nombres. Por lo que ahora se ve así:

var activity = { 
message: null, 
hideMyDiv: function() { 
    $('#MyDiv').fadeOut(); 
} }; 

que pueda llamar a esta función refactorizado en javascript, funciona como antes:

$("document").ready(function() { 
activity.hideMyDiv(); }); 

Pero cuando trato de usarlo desde Silverlight, me sale este error: Error al invocar: activity.updateInfo. Este es mi código Silverlight actual:

HtmlPage.Window.Invoke("activity.hideMyDiv"); 

¿Qué estoy haciendo mal? (Gracias!)

Respuesta

11

Ésta es la manera correcta ..

ScriptObject so = HtmlPage.Window.Eval("activity") as ScriptObject; 
so.Invoke("hideMyDiv"); 
+1

de agradecimiento, funciona como un encanto. – bperreault

Cuestiones relacionadas