- From: Sigurd Lerstad <sigler@bredband.no>
- Date: Fri, 7 Feb 2003 14:54:59 +0100
- To: "Dean Jackson" <dean@w3.org>
- Cc: <www-svg@w3.org>, <www-html@w3.org>
> > Hi Sigurd, > > On Sun, 02 Feb 2003, Sigurd Lerstad wrote: > > > 1. > > > > <listener ev:handler="#somehandler" > > > > how is a XHTML/SVG document supposed to deal with that, what if e.g > > > > <p id="somehandler"> > > > > What should happen when listener gets an event, what should it do to the p > > element? > > I believe that is left up to the host language. In this case, the > <p> element (I assume it is an HTML <p>) has no way of handling > the event so the event just disappears. Yes, It's up to the host language, and in this(my) case SVG.. but it makes sense that <p> (in XHTML) can't handle it. What elements CAN handle it? <script> elements? > > Is javascript allowed inside the ev:handler attribute? > No. Only a URI reference. Yes, I found that out shortly after. > > 3. > > > > In this example from the XML Events spec: > > <script type="application/x-javascript" > > ev:event="submit" ev:observer="form1"> > > return docheck(event); > > </script> > > > > where is the event variable inside docheck coming from, is this a global > > object fetched from the global 'window' object, or is an object named > > 'event' always passed in? > > Welcome to the big mess that is scripting. > > In SVG, most implementations just load all the code in > the script element into a single shared namespace (I'm not sure if > that is specified, but that is how it is done). This is another problem. if you have the above script meant to be a handler, older viewers will just execute the script right after loading, which obviously isn't supposed to happen. But wasn't there a 'for' and 'event' attribute on the script element in HTML to attach a handler to the script element? these 'for' / 'event' attribute now seems to be replaced with ev:event. So A viewer, when traversing all the script elements on the page, must check for the ev:event attribute and only execute the script if it isn't there? But how about.. <script id="doit"> return docheck(event) </script> <ellipse ev:event="mousedown" ev:handler="#doit"> Now, there's no ev:event on the script, but it's obviously meant to be a handler.. What to do here? > So, in this case the above example doesn't really make > sense (since there is no enclosing function, and no way > to enter the code at that point). (Again, it's likely that > I'm wrong here). My understanding was that scripts with no enclosing function were to execute immediately after loading the page (or in old HTML, execute as the page is loaded) > As for the magic "event" variable, it seems that most > scripting implementations define a variable called "event" > or "evt" to be used in a handler attribute > (e.g. onmousedown="docheck(evt)"). > > To me it is unclear what's supposed to happen here. > > Anyone have any ideas? The way IE gets events from ActiveX controls is to have <script for="someobject" event="someevent(arg1,arg2)"> Or something like that. So you must know the number of parameters passed in from the event, but you can name them what you like, so maybe having something like <script ev:event="mousemove(event)"> docheck(event); </script> ?? -- Sigurd Lerstad
Received on Thursday, 6 February 2003 07:52:26 UTC