Domenico,
First, thanks for pointing me to the resizable text wrap. It was just
what I needed.
With regards to the use tag, I was hoping I could reuse a tspan element
and modify the text for each use tag, but once I change tspan1, all the
references would reflect it. So using a tspan in the defs and reusing
over and over for separate text boxes is not possible.
Sean
domenico_strazzullo wrote:
>Sean,
>
>Of course it's possible. You need to target the document and not
>just the element that makes the call:
>
>function edit2(evt){
>// var objet=evt.target;
> var objet = evt.target.ownerDocument;
> var tspan1 = objet.getElementById("tspan1"); //Works
> tspan1.firstChild.data = "NewText";
>}
>
>It works in IE7 and FF. I'm not sure the last line is what you want
>to do, just a guess, but tspan1 returns an object so you can do
>anything with it.
>
>Domenico
>
>
>--- In [email protected], Jeff Rafter <[EMAIL PROTECTED]> wrote:
>
>
>>Sean,
>>
>>It can be done, it just has to be done differently in each
>>
>>
>browser. Try
>
>
>>this code inside of your event:
>>
>> var target = evt.target;
>> var use = null
>> if (target == null) return;
>> if (target.correspondingUseElement)
>> use = target.correspondingUseElement;
>>
>>This is a sure way to get the <use> element from the target (in
>>
>>
>case it
>
>
>>is not correctly returned as an SVGElementInstance). The
>>correspondingElement property is not itself reliable (because of
>>inconsitent implementation interpretations). Once you have that
>>
>>
>you
>
>
>>should be able to access
>>
>> use.instanceRoot, use.animatedInstanceRoot (less reliable)
>>
>> From that you should get a reliable SVGElementInstance on which
>>
>>
>you can
>
>
>>use the correspondingElement property. Additionally you should be
>>
>>
>able
>
>
>>to use read only DOM properties. See
>>
>>http://www.w3.org/TR/SVG/struct.html#InterfaceSVGElementInstance
>>
>>Also, once you have the <use> element, you can simply follow the
>>
>>
>link
>
>
>>specified in the URI reference or simply lookup the referenced
>>
>>
>element
>
>
>>by the specified ID.
>>
>>Cheers,
>>Jeff Rafter
>>
>>Sean wrote:
>>
>>
>>>I can get the use tag, I want to be able to navigate the use
>>>
>>>
>tag. I
>
>
>>>have the use referencing a g tag with several elements under the
>>>
>>>
>g tag.
>
>
>>>I want to be able to navigate those elements. I'm coming to the
>>>conclusion that it can't be done.
>>>
>>>Sean
>>>
>>>Peter Kalev wrote:
>>>
>>>
>>>
>>>>Why don't you wrap the use element in a <g id="____">, search
>>>>
>>>>
>for the
>
>
>>>>"g" and then look for the <use> inside the "g"... Works fine
>>>>
>>>>
>for me...
>
>
>>>>Peter Kalev
>>>>Senior Developer,
>>>>SWF, LLC
>>>>
>>>>
>>>>-----Original Message-----
>>>>From: Sean [mailto:[EMAIL PROTECTED]
>>>>Sent: Wednesday, February 08, 2006 11:21 AM
>>>>To: [email protected]
>>>>Subject: Re: [svg-developers] Re: use tag and unique IDs
>>>>
>>>>I should say navigate the use element. I realize that it is
>>>>
>>>>
>read only,
>
>
>>>>but I can't figure out how to do that. Thanks.
>>>>
>>>>Sean wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>Does any one have examples of using SVGUseElement &
>>>>>
>>>>>
>SVGElementInstance?
>
>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>Thanks.
>>>>>
>>>>>Sean
>>>>>
>>>>>Sean wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Hi Alastair,
>>>>>>
>>>>>>Thanks for the input. I figured as much with the id, but
>>>>>>getElementByName didn't work either. I was hoping that
>>>>>>
>>>>>>
>something
>
>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>would
>>>>
>>>>
>>>>
>>>>
>>>>>>work. I tried the childNodes and firstChild, but nothing
>>>>>>
>>>>>>
>works.
>
>
>>>>>>objet.childNodes.length returns 0, which appears to mean that
>>>>>>
>>>>>>
>the
>
>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>child
>>>>
>>>>
>>>>
>>>>
>>>>>>nodes under the use tag don't get recognized, rendering the
>>>>>>
>>>>>>
>approaches
>
>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>>below useless, no pun intended. My failure to get the use
>>>>>>
>>>>>>
>tags to
>
>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>work
>>>>
>>>>
>>>>
>>>>
>>>>>>would mean the difference between using 35,000 tags and
>>>>>>
>>>>>>
>210,000 tags.
>
>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>I
>>>>
>>>>
>>>>
>>>>
>>>>>>have quite the incentive to make it work. Thanks.
>>>>>>
>>>>>>var objet=evt.target;
>>>>>>alert(objet.childNodes.length);
>>>>>>
>>>>>>var child = objet.firstChild;
>>>>>>i=0;
>>>>>>while(child != null){
>>>>>>childSibling = child.nextSibling;
>>>>>>alert(child.nodeType);
>>>>>>child = childSibling;
>>>>>>}
>>>>>>
>>>>>>Sean
>>>>>>
>>>>>>Alastair Fettes wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>You've made a fundamental mistake.
>>>>>>>
>>>>>>>1. The idea behind a defs section is to resuse (have
>>>>>>>
>>>>>>>
>multiple
>
>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>copies)
>>>>
>>>>
>>>>
>>>>
>>>>>>>of an definition.
>>>>>>>2. The idea of an ID attribute is to only have one
>>>>>>>
>>>>>>>
>attribute with a
>
>
>>>>>>>specific value document wide (see xs:ID type -
>>>>>>><http://www.w3.org/TR/xmlschema-2/#ID>).
>>>>>>>
>>>>>>>So therefore you have a fundamental mistake. The defs
>>>>>>>
>>>>>>>
>section and
>
>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>the
>>>>
>>>>
>>>>
>>>>
>>>>>>>id invalidate each other.
>>>>>>>
>>>>>>>The only thing you could (possibly) do would be to
>>>>>>>
>>>>>>>
>getElementById(
>
>
>>>>>>>"useFrame2" ).childNodes.foo.bar to get the tspan. Maybe, i
>>>>>>>
>>>>>>>
>don't
>
>
>>>>>>>guarantee it.
>>>>>>>
>>>>>>>Alastair
>>>>>>>
>>>>>>>--- In [email protected], Sean <scene@> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>I would like to use the use tags to save much text size as
>>>>>>>>
>>>>>>>>
>below.
>
>
>>>>>>>>Problem is grabbing and editing data with onclick events.
>>>>>>>>
>>>>>>>>
>The id
>
>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>for my
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>tspan would always be the same, but they would be used in
>>>>>>>>
>>>>>>>>
>different
>
>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>use
>>>>
>>>>
>>>>
>>>>
>>>>>>>>tags with unique IDs. Is there a way to isolate say the
>>>>>>>>
>>>>>>>>
>tspan1
>
>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>under
>>>>
>>>>
>>>>
>>>>
>>>>>>>>useFrame2?
>>>>>>>>
>>>>>>>>SVG
>>>>>>>><defs>
>>>>>>>><g id="textFrame" cat="textBox">
>>>>>>>><text cat="textBox" font-size="14" font="sans-serif"
>>>>>>>>
>>>>>>>>
>><tspan
>>
>>
>>>>>>>>id="tspan1" cat="textBox">Text</tspan></text>
>>>>>>>><text><tspan visibility="hidden" id="tspan2"></tspan></text>
>>>>>>>></g>
>>>>>>>></defs>
>>>>>>>><use id="useFrame" onclick="edit2(evt);"
>>>>>>>>
>>>>>>>>
>xlink:href="#textFrame"
>
>
>>>>>>>>transform="translate(10,25)"/>
>>>>>>>><use id="useFrame2" onclick="edit2(evt);"
>>>>>>>>
>>>>>>>>
>xlink:href="#textFrame"
>
>
>>>>>>>>transform="translate(10,50)"/>
>>>>>>>>
>>>>>>>>JS
>>>>>>>>function edit2(evt){
>>>>>>>>var objet=evt.target;
>>>>>>>>var tspan1 = objet.getElementById("tspan1"); //Doesn't work
>>>>>>>>}
>>>>>>>>
>>>>>>>>Thanks!
>>>>>>>>
>>>>>>>>Sean
>>>>>>>>
>>>>>>>>--
>>>>>>>>"I'd rather have a bottle in front of me, than a frontal
>>>>>>>>
>>>>>>>>
>lobotomy."
>
>
>>>>>>>>-- Tom Waits
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>-----
>>>>>>>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 unsubscribe send a message to: [EMAIL PROTECTED]
>-or-
>visit http://groups.yahoo.com/group/svg-developers and click "edit my
>membership"
>----
>Yahoo! Groups Links
>
>
>
>
>
>
>
>
>
>
>
--
"I'd rather have a bottle in front of me, than a frontal lobotomy."
-- Tom Waits
-----
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/
<*> 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/