You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by Marcel Ruff <mr...@marcelruff.info> on 2003/08/23 20:19:32 UTC
Javascript createElement: bug in batik?
Hi,
i'm using Batik 1.5 on Linux with java 1.4.1
In the <defs> section i have defined a rectangle
from which i want to create many instances with Javascript,
but nothing is displayed.
Showing the <def> directly with
<use id="ZZ" xlink:href="#XX"/>
works fine.
Here is the failing code:
------------------------------------------
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800" height="500" viewBox="0 0 800 500"
onload="doInit(evt)">
<defs>
<script type="text/ecmascript">
<![CDATA[
function doInit(evt) {
var svgDoc = evt.target.ownerDocument;
var svgTag = svgDoc.getFirstChild();
var use = svgDoc.createElement("use");
use.setAttribute("id", "ZZ");
use.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#XX");
svgTag.appendChild(use);
// test:
var el = svgDoc.getElementById("ZZ");
alert("elem=" + use.getAttribute("id"));
alert("elem=" + use.getAttribute("href"));
}
]]>
</script>
<rect id="XX" x="10" y="10" width="20" height="100" style="fill:blue"/>
</defs>
<!-- use id="ZZ" xlink:href="#XX"/ -->
</svg>
---------------------------------------------
Is this a bug in batik or do i make a mistake?
thanks for some help
Marcel
--
http://www.xmlBlaster.org
---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org
Re: Javascript createElement: bug in batik?
Posted by Marcel Ruff <mr...@marcelruff.info>.
Marcel Ruff wrote:
> Hi,
>
> i'm using Batik 1.5 on Linux with java 1.4.1
OK, it is resolved, this works:
function doInit(evt) {
var svgDoc = evt.target.ownerDocument;
var svgNS = "http://www.w3.org/2000/svg";
var svgXLink = "http://www.w3.org/1999/xlink";
var svgRoot = svgDoc.getDocumentElement(); // get the root element (the svg element)
var use = svgDoc.createElementNS(svgNS, "use");
use.setAttributeNS(null, "id", "ZZ");
use.setAttributeNS(svgXLink, "xlink:href", "#XX");
svgRoot.appendChild(use);
}
(it is described in the batik FAQ)
thanks
Marcel
>
> In the <defs> section i have defined a rectangle
> from which i want to create many instances with Javascript,
> but nothing is displayed.
> Showing the <def> directly with
>
> <use id="ZZ" xlink:href="#XX"/>
>
> works fine.
> Here is the failing code:
>
> ------------------------------------------
> <?xml version="1.0" standalone="no"?>
> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
> "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
>
> <svg xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink"
> width="800" height="500" viewBox="0 0 800 500"
> onload="doInit(evt)">
>
> <defs>
> <script type="text/ecmascript">
> <![CDATA[
> function doInit(evt) {
> var svgDoc = evt.target.ownerDocument;
> var svgTag = svgDoc.getFirstChild();
> var use = svgDoc.createElement("use");
> use.setAttribute("id", "ZZ");
> use.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#XX");
> svgTag.appendChild(use);
>
> // test:
> var el = svgDoc.getElementById("ZZ");
> alert("elem=" + use.getAttribute("id"));
> alert("elem=" + use.getAttribute("href"));
> }
> ]]>
> </script>
>
> <rect id="XX" x="10" y="10" width="20" height="100" style="fill:blue"/>
> </defs>
>
> <!-- use id="ZZ" xlink:href="#XX"/ -->
>
> </svg>
> ---------------------------------------------
>
> Is this a bug in batik or do i make a mistake?
>
> thanks for some help
>
> Marcel
>
>
>
--
http://www.xmlBlaster.org
---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org