On Wed, 20 Feb 2008 00:00:42 +0100, philsvg <[EMAIL PROTECTED]> wrote:
> Hello Erik, > > I had already find your example, which demonstrate only html-svg- > html, not svg-html-svg (IMHO). > > i found my prefered example here : > > http://svg-whiz.com/svg/interdoc/html-svg.html > > I found it using FFX, and i downloaded it on my local disk. When i > tested it with Opera, it doesn't work. At loading,I get "The > GetSVGDocument interface is not supported" message, not with FFX. Embed with svg:s in Opera 9.2x may sometimes give a non-consistent result unfortunately, should work consistently in 9.5 though. Replacing <embed> with <object> usually helps. > And now, trying my svg generated code working with FFX3b, with Opera > I have a type mismatch error at > objet = evt.target.getAttributeNS(null, "id"); (syntax recommanded in > http://jwatt.org/svg/authoring/ i decided to follow ... and works > well for FFX) > that i can replace by (as i can see in the example code) > objet_temp=evt.target; > objet=objet_temp.id; FF doesn't implement the SVGElementInstance DOM, so my guess is that you are seeing this on elements that were <use>:d. Inspect the type of evt.target to see what it is, alert("evt.target: " + evt.target + " evt.currentTarget: " + evt.currentTarget). Sometimes evt.currentTarget is what you wanted, sometimes it's not. For example there can be cases where you want to know which one (of several <use>:d instances) your event occurred in, and sometimes you only want to get at the "real" elements that the <use> pointed to. I hope that makes it easier to understand :) Anyway, both of your ways of getting id:s should work just fine, provided of course that you have an SVGElement or a Node, in case you have an SVGElementInstance then there is no id attribute since it's a "shadow tree element". By reading the SVG 1.1 spec it's clear that SVGElementInstance has no getAttributeNS method on it - it doesn't implement the Node interface, only the EventTarget interface. For details see: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGElementInstance (definition of the SVGElementInstance interface) http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget (definition of the EventTarget interface) > but somewhere in my code, i have to use getAttributeNS to parametrize > the attribute's name to factorize my code ... so thanks to avoid me > to go deeper in that bad way ... > > I have to work more to be compliant with Opera ... So it is late now I agree that it's unfortunate that Firefox implements <use> incorrectly, since it hurts interoperability, but perhaps this can be fixed in time for the FF3.0 final version? That SVGElementInstance isn't implemented is one thing, that FF by cloning nodes instead of "conceptually cloning nodes" also has side-effects such as the fact that CSS selectors applies to the shadow trees (which the spec tells you they must not). The SVG 1.1 testsuite didn't have any tests covering these cases though, but such tests will no doubt be added for future releases. Cheers /Erik -- Erik Dahlstrom, Core Technology Developer, Opera Software Co-Chair, W3C SVG Working Group Personal blog: http://my.opera.com/macdev_ed ----- To unsubscribe send a message to: [EMAIL PROTECTED] -or- visit http://groups.yahoo.com/group/svg-developers and click "edit my membership" ---- Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/svg-developers/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/svg-developers/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

