[IronPython] IronPython to JavaScript

Kristian Jaksch kristian.jaksch at gmail.com
Tue Jan 13 09:59:48 CET 2009


Thanks for the reply!

No, I can't get it to work with Javascript either. I added the script
below to my page:

          <script type="text/javascript">
               function some_function(sender, args) {
               value = args.val;
               alert(value);
               }

               control = document.getElementById("sl2");
               control.Content.event.Event = some_function;  // THIS
LINE GIVES AN ERROR
           </script>

I'm not sure about the exact translation of the error message (It's in
swedish) but it's something like:

"Error: Invalid pointer"

I guess it has something to do with the error I receive in my "app.py"
file as I described previously.

I made a minimal app.py file to test it again but I still receive the
same error. This file also test to get a string from Javascript to
Ironpython and that works just fine. Below is my complete file:


import clr, sys

clr.AddReferenceToFile("Scriptable.dll")

from System.Windows import Application
from System.Windows.Browser import *
from System.Windows.Controls import *
from System.Windows import Input
from Scriptable import *


class GetFromEditor(ScriptableForString):
    def _method(self, string):
        root.message.Text = string
        #return new_string

GetFromEditor = GetFromEditor()

root = Application.Current.LoadRootVisual(UserControl(), "app.xaml")

HtmlPage.RegisterScriptableObject("GetFromEditor", GetFromEditor)


event = ScriptableEvent()

# This must also be registered
HtmlPage.RegisterScriptableObject("event", event)

args = ScriptableEventArgs()
args.val = 'some string'
event.OnEvent(args)


It must be something I'm missing but I just can't see what it could
be. Do you know of any good example were this approach is used?

Thanks again!


2009/1/12 Michael Foord <fuzzyman at voidspace.org.uk>:
> xkrja wrote:
>>
>> I'm trying to call javascript from IronPython (via Silverlight 2) but I
>> can'
>> get it to work properly. I looked at this example:
>>
>> http://www.voidspace.org.uk/ironpython/silverlight/scriptable.shtml#id10
>> http://www.voidspace.org.uk/ironpython/silverlight/scriptable.shtml#id10
>> It's explained very clearly but when I try to run my code I get a System
>> Error:
>>
>> SystemError: Object reference not set to an instance of an object.
>>
>> I just inserted the lines of code found on the example page in my
>> IronPyton
>> code:
>>
>> event = ScriptableEvent()
>>
>> # This must also be registered
>> HtmlPage.RegisterScriptableObject("event", event)
>>
>> args = ScriptableEventArgs()
>> args.val = 'some string'
>> event.OnEvent(args) #This gives me a System Error
>>
>> I create a C# .dll as explained in the example and add a reference to it.
>> The source is below:
>>
>> using System;
>> using System.Windows.Browser;
>>
>> namespace Scriptable
>> {
>>
>>    [ScriptableTypeAttribute]
>>    public class ScriptableForString
>>    {
>>        [ScriptableMemberAttribute]
>>        public string method(string value)
>>        { return this._method(value); }
>>
>>        public virtual string _method(string value)
>>        { return "override me"; }
>>    }
>>
>>    [ScriptableType]
>>    public class ScriptableEvent
>>    {
>>        [ScriptableMember]
>>        public event EventHandler Event;
>>
>>        public virtual void OnEvent(ScriptableEventArgs e)
>>        {
>>            Event(this, e);
>>        }
>>    }
>>
>>    [ScriptableTypeAttribute]
>>    public class ScriptableEventArgs : EventArgs
>>    {
>>        private string _val;
>>
>>        [ScriptableMemberAttribute]
>>        public string val
>>        {
>>            get { return _val; }
>>            set { _val = value; }
>>        }
>>    }
>> }
>>
>> Can anyone explain what I'm doing wrong?
>> Thanks for any help!
>>
>>
>
> Hmmm... do you have any Javascript hooking up to the event? If you don't,
> try hooking up to it and see if it makes any difference.
>
> The same code works for me. :-)
>
> Michael
>
> --
> http://www.ironpythoninaction.com/
> http://www.voidspace.org.uk/blog
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>



More information about the Ironpython-users mailing list