Creating & calling javascript function through silverlight event
Hi
I'm working on a Visual Studio.NET 2010 Silverlight Application using C#. I've got a Silverlight Navigation Template which I've added a Master Page to. What i'd like to know is how to mimic the ClientScript.RegisterClientScriptBlock using SilverLight.
I want one Silverlight event to write the javascript function to the Master Page and another Silverlight event to call that Javascript Function.
I have to do it this way as I'm using an embedded print runtime object which can extract the printer attached to the local pc.
Thanks
Microsoft DevelopmentMicrosoft ApplicationsASP.NET
Last Comment
razza_b
8/22/2022 - Mon
carlnorrbom
Hi,
In silverlight you can run javascript directly by using:
HtmlPage.Window.Invoke();
/Carl.
Gautham Janardhan
you can store the script into a string in the first event you want to create it and then where you want to invoke it you can do
System.Windows.Browser.HtmlPage.Window.Eval(script);
razza_b
ASKER
I tried the following statement and got the following error:
System.InvalidOperationException was unhandled by user code
Message=Microsoft JScript compilation error Syntax error
StackTrace:
at System.Windows.Browser.HtmlWindow.Eval(String code)
at SilverlightNavigationApplicationTest.MainPage.button2_Click(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
InnerException:
I tried adding the type and got the following error:
System.InvalidOperationException was unhandled by user code
Message=Microsoft JScript compilation error Syntax error
StackTrace:
at System.Windows.Browser.HtmlWindow.Eval(String code)
at SilverlightNavigationApplicationTest.MainPage.button2_Click(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
InnerException:
If I add the javascript function to my master page and use this it works.
The HtmlPage.Window.Eval(yourscript) worked. The reason it wasn't working before for me was because I was building the javascript string with the <script> tags and the function declaration.
I tested it first with HtmlPage.Window.Eval("alert('Test!');") It succeeded so it was a matter of stripping the headers from the code and testing again by passing my string var, HtmlPage.Window.Eval(JScript)
In silverlight you can run javascript directly by using:
HtmlPage.Window.Invoke();
/Carl.