ScriptableMember and Silverlight

Hello all, I need some way to either access a javascript variable or
expose
a function to javascript to be called later. I’ve tried option #2, with
the
following call, but I don’t know how to specify a member function as
scriptable. In C#, you use a meta-flag [ScriptableMember] above the
function.
HtmlPage.register_scriptable_object(‘mn’, self)

What about the other approach? I know you can access the dom, but I
need to
access a plain old variable from javascript.

Thanks!
~sean

Hey Sean,

Yeah, I’m well aware of the issue with not being able to use
[ScriptableMember] for IronRuby. =(

  1. Access Javascript variable from Ruby:

If in your HTML you have some variable:

Then in your Ruby script you can access it:

Include System::Windows::Browser
HtmlPage.window.eval “jsVar”

  1. Access Ruby function from Javascript

This is not directly possible because of not having attribute support.
Curt might have more input into whether this will be fixed in the
future.

However, if you’re not opposed to hacky solutions, attach Ruby to a JS
event (HtmlElement#attach_event), and when you want data from Ruby fire
the JS event and Ruby could write the data to the DOM (a hidden div,
perhaps?). Ugh, that sucks, but it’s what we’ve got today.

I’d suggest trying the first option, and we’ll keep you posted on making
Ruby objects scriptable from JS.

~js

On 8/14/08 11:59 AM, “Sean C. Hess” [email protected] wrote:

Hello all, I need some way to either access a javascript variable or
expose a function to javascript to be called later. I’ve tried option
#2, with the following call, but I don’t know how to specify a member
function as scriptable. In C#, you use a meta-flag [ScriptableMember]
above the function.

HtmlPage.register_scriptable_object(‘mn’, self)

What about the other approach? I know you can access the dom, but I
need to access a plain old variable from javascript.

Thanks!
~sean

Sweet… I just figured out how to call a js function from ruby, and in
fact, that works better for what I want to do anyway.
Thanks!

On Thu, Aug 14, 2008 at 1:44 PM, Jimmy S. <

I don’t know about the word “fixed” :). But attribute support is
definitely one of the .NET interop scenarios on my radar.

From: [email protected]
[mailto:[email protected]] On Behalf Of Jimmy
Schementi
Sent: Thursday, August 14, 2008 12:45 PM
To: [email protected]
Subject: Re: [Ironruby-core] ScriptableMember and Silverlight

Hey Sean,

Yeah, I’m well aware of the issue with not being able to use
[ScriptableMember] for IronRuby. =(

  1. Access Javascript variable from Ruby:

If in your HTML you have some variable:

Then in your Ruby script you can access it:

Include System::Windows::Browser
HtmlPage.window.eval “jsVar”

  1. Access Ruby function from Javascript

This is not directly possible because of not having attribute support.
Curt might have more input into whether this will be fixed in the
future.

However, if you’re not opposed to hacky solutions, attach Ruby to a JS
event (HtmlElement#attach_event), and when you want data from Ruby fire
the JS event and Ruby could write the data to the DOM (a hidden div,
perhaps?). Ugh, that sucks, but it’s what we’ve got today.

I’d suggest trying the first option, and we’ll keep you posted on making
Ruby objects scriptable from JS.

~js

On 8/14/08 11:59 AM, “Sean C. Hess” [email protected] wrote:
Hello all, I need some way to either access a javascript variable or
expose a function to javascript to be called later. I’ve tried option
#2, with the following call, but I don’t know how to specify a member
function as scriptable. In C#, you use a meta-flag [ScriptableMember]
above the function.

HtmlPage.register_scriptable_object(‘mn’, self)

What about the other approach? I know you can access the dom, but I
need to access a plain old variable from javascript.

Thanks!
~sean