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
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/ironruby-core/attachments/20080814/7e4c7e40/attachment.html>
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:
<script type=?text/javascript?>
var jsVar = ?Hello from Javascript?
</script>
Then in your Ruby script you can access it:
Include System::Windows::Browser
HtmlPage.window.eval ?jsVar?
2. 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 Clark Hess" <seanhess at gmail.com>
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/ironruby-core/attachments/20080814/e81cf3a9/attachment.html>
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 Schementi < Jimmy.Schementi at microsoft.com> wrote:> 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: > <script type="text/javascript"> > var jsVar = "Hello from Javascript" > </script> > > Then in your Ruby script you can access it: > > Include System::Windows::Browser > HtmlPage.window.eval "jsVar" > > 2. 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 Clark Hess" <seanhess at gmail.com> 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 > > > > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080814/4b5ac5d3/attachment-0001.html>
I don''t know about the word "fixed" :). But attribute support
is definitely one of the .NET interop scenarios on my radar.
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at
rubyforge.org] On Behalf Of Jimmy Schementi
Sent: Thursday, August 14, 2008 12:45 PM
To: ironruby-core at rubyforge.org
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:
<script type="text/javascript">
var jsVar = "Hello from Javascript"
</script>
Then in your Ruby script you can access it:
Include System::Windows::Browser
HtmlPage.window.eval "jsVar"
2. 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 Clark Hess" <seanhess at gmail.com>
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/ironruby-core/attachments/20080814/cfa6ebf9/attachment.html>