To answer my question, onload event seems to be working, so instead of
ready, it should be load function.
mysvg.load(function(){
.... above code goes here ....
});
It is similar to images. Firefox DOM is ready before an image is
ready. It looks like it is also ready before an object fully loaded.
On Nov 20, 3:07 pm, balamir <[EMAIL PROTECTED]> wrote:
> I'm using SVG with jQuery and I'm aware of jQuery SVG plugin and
> Marvin's discussion athttp://marvin.elte.hu/balu/content/jquery-svg.
> For developmental reasons, I'm trying to embed SVG as an object to my
> DOM.
> For example:
>
> var mysvg= $('<object id="object" data="ellipse.svg" type="image/svg
> +xml" width="160" height="100" style="position:absolute;top:0px;left:
> 0px;z-index:100"></object>');
> mycontainer.append(mysvg); //append it to the container
>
> My aim is to update SVG parameters when it is ready.
>
> For this purpose I get SVG root using the example
> athttp://jwatt.org/svg/demos/scripting-across-object.html
>
> var object = document.getElementById('object');
> if (object && object.contentDocument)
> svgdoc = object.contentDocument;
> svgdoc.getElementById('ellipse').setAttribute("rx",200); //modify
> the content
> else try {
> svgdoc = object.getSVGDocument();
> svgdoc.getElementById('ellipse').setAttribute("rx",200); //
> modify the content
> }
> catch(exception) {
> alert('Neither the HTMLObjectElement nor the GetSVGDocument
> interface are implemented');
> }
>
> Because the object is not ready, the above code always creates an
> exception. The first "if" fails. The getSVGDcoument also fails as it
> does not exist. My solution for making sure object is ready is to
> move the above code to mysvg's ready function.
>
> mysvg.ready(function(){
> .... above code goes here ....
> });
>
> Now this ready function is called when object is ready. However, even
> when object is ready, and svg is set correctly, svg.getElementById
> returns null. When I call svgdoc.getElementById later in the
> execution, it works fine (even if I add it to catch part, supposed to
> be giving errors, it works fine).
>
> I think jQuery assumes object is ready before SVG's DOM is created. I
> know that jQuery is specificly developed for Javascript but any
> suggestions how can I add my function only when everything (both
> javascript and SVG DOMs) is ready (or make sure jQuery is aware of
> SVG's DOM?)