I haven't had a chance to look at your question at all and was glad to see
Jake had some suggestions. Just anecdotally, I've noticed that a lot of
things governing the relationship between "HTML5" (as it is ambiguously
termed in the world at large) and SVG that were somewhat predictable in
HTML-SVG discourse, are remarkably dysfunctional across browsers. I think
much of this is due to the fact that HTML5 is not yet a stable
recommendation. You might want to test to see if what you're doing works
anywhere. Sometimes one uses getSVGDocument()instead of contentDocument (see
http://www.w3.org/Graphics/SVG/IG/resources/svgprimer.html#scripting_HTML
).. I used to think of contentDocument as something that was only
implemented in one or two browsers, while in the "traditional" HTML - SVG
world, getSVGDocument() was the way to go. 

 

You might fool around with that and be sure to check out alternative
browsers, since they all seem to have different ideas about many of these
issues at present.

 

Cheers

David

 

From: [email protected] [mailto:[email protected]]
On Behalf Of Diana
Sent: Thursday, February 23, 2012 12:27 AM
To: [email protected]
Subject: [svg-developers] Re: access svg elements from HTML5

 

  


Hi Jake,

Thanks for your reply.

But the svg has already loaded, because it's displayed, and I push a button
to execute the code that is trying to get it. 

Plus, this line: var a = document.getElementById("dialSvg"); 
works well, the result is a HTMLEmbedElement. I checked what is defined in
this HTMLEmbedElement, there is no contentDocument defined, thus, the
following line:

var svgDoc = a.contentDocument; 
returns null. 

Any idea?

Many thanks
-Diana
--- In [email protected]
<mailto:svg-developers%40yahoogroups.com> , Jacob Beard <jbeard4@...> wrote:
>
> This is a pretty common question, and I think it needs to go in an FAQ
> somewhere.
> 
> The reason why it's not currently working in your code snippet is that the
> SVG document inside the embed is not yet loaded. You need to add a load
> listener to wait for it. You can find a solution for this here:
>
http://stackoverflow.com/questions/2753732/how-to-access-svg-elements-with-j
avascript/3379830#3379830
> 
> Jake
> 
> On Wed, Feb 22, 2012 at 8:01 PM, Diana <diana.perpignan@...> wrote:
> 
> > **
> >
> >
> > Hello all,
> >
> > I am very new to svg. I am trying to access an element (defined by id)
in
> > a svg file from HTML5, using jquery if possible, but it's not
successful.
> > Here is part of the code:
> >
> > *******************************
> > svg definition:
> > <svg version="1.1" id="Layer_1"
> > xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="
> > http://www.w3.org/1999/xlink"; x="0px" y="0px" width="100%" height="100%"
> > viewBox="0 0 100 100" enable-background="new 0 0 100 100"
> > xml:space="preserve">
> >
> > <path id="dial" fill="#F7941E"
> >
d="M89.944,50c0-22.091-17.908-40-40-40c-22.092,0-40,17.909-40,40c0,22.092,17
.908,40,40,40V50
> > H89.944z"/>
> > </svg>
> >
> > In HTML
> > <embed src='dial.svg' type='image/svg+xml' id="dialSvg"/>
> >
> > // the following code is from online reading
> > var a = document.getElementById("dialSvg"); // this line is okay, the
> > result is HTMLEmbedElement
> > var svgDoc = a.contentDocument; // but contentDocument is not even
defined
> > in HTMLEmbedElement
> > var d = svgDoc.getElementById("dial");
> > ******************************************
> >
> > Any help is greatly appreciated.
> >
> > Thanks
> > Diana
> >
> > 
> >
> 
> 
> [Non-text portions of this message have been removed]
>





[Non-text portions of this message have been removed]



------------------------------------

-----
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:
    [email protected] 
    [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/

Reply via email to