[IronPython] Python in the Browser updates
fuzzyman at voidspace.org.uk
Wed Jun 18 12:01:23 CEST 2008
Jimmy Schementi wrote:
> Michael, question for you:
> How come you used C# to handle the onkeypress event? This should do it in Python:
Did you look at the code to see why? I'd be really interested to know if
I can do what I'm doing from Python inside Silverlight, but I doubt it.
There's not much code in total, so it should be easy to follow.
This calls into 'getSelection' (cursor_pos.js) to work out the current
selection in the textarea. Naturally this is easy to do in Firefox /
Safari and scarily awful in IE. :-)
Having worked these out (and shortcut a few specific scenarios - like
with the selection start, selection end, and the character that was
I use attaching events from Python to provide the sample code. There are
three links above the console and Python handles the 'onclick' event to
swap the examples around.
> <textarea id="code"></textarea>
> <div id="result"></div>
> from System import EventHandler
> from System.Windows.Browser import Htmlpage, HtmlEventArgs
> document = System.Windows.Browser.HtmlPage.Document
> def onkeypress(s, e):
> document.result.innerHTML += "KeyPress<br />"
> document.code.AttachEvent("onkeypress", EventHandler[HtmlEventArgs](onkeypress))
> Anyway, just wondering if anything was blocking you from hooking HTML events with Python.
>> -----Original Message-----
>> From: users-bounces at lists.ironpython.com [mailto:users-
>> bounces at lists.ironpython.com] On Behalf Of Michael Foord
>> Sent: Tuesday, June 17, 2008 2:52 PM
>> To: Discussion of IronPython
>> Subject: Re: [IronPython] Python in the Browser updates
>> Hello all,
>> Sorry for the noise - but tomorrow I hope to package this for a release
>> and if any of you get the chance to give me any feedback before then.
>> I think I have fixed all the basic usability issues (it is no longer
>> possible to screw up the console so that it refuses further input for
>> example). To *really* fix input I ought to move execution into its own
>> thread so that we can interrupt infinite loops  - but that is a
>> bigger change so I am resisting it for the moment.
>> The big change is that I have added some simple code snippets - as an
>> example of how it could be used in tutorials or for teaching Python.
>> It is also easy to customize - the source code (200 lines of Python, 70
>> execution context and show the first few lines of code in the
>> You can get the sourcecode from the repository of course:
>> All the best,
>> Michael Foord
>>  and then decide whether on windows a ctrl-c should send a keyboard
>> interrupt or copy to the clipboard...
>> Michael Foord wrote:
>>> For those who are interested, I've updated "Python in the Browser".
>>> Both the repository:
>>> And the online demo:
>>> There are a few minor but nice improvements:
>>> * The textarea scrolls as input is printed
>>> * The context window is disabled to prevent you pasting over the
>>> area - not sure if this is really an improvement though...
>>> * The input area is cleared on load - to stop browsers like Firefox
>>> and Safari repopulating the textarea for us on browser refresh
>>> * Recursion limit is set
>>> I think it is basically in a useful state now... I might push out a
>>> '0.1' release from the current SVN head.
>>> All the best,
>>> Michael Foord
>> Users mailing list
>> Users at lists.ironpython.com
> Users mailing list
> Users at lists.ironpython.com
More information about the Ironpython-users