Hi John,

there are actually only one problem with firefox and bounding-boxes:

* Firefox 1.5 and 2 had a bug where .getBBox() could not be called 
"onload". One had to do a slight delay, using setTimeout() with a few 
milliseconds. This is corrected in Firefox3 though.

Other than that Firefox is correct when not returning bounding-boxes 
when display is set to none. The difference between display=none and 
visibility=hidden is that with visibility, the elements are part of 
the rendering tree, while with display=none they are not. For 
elements that aren't part of the rendering tree it is impossible to 
calculate bounding boxes. The same applies for newly created elements 
that haven't been appended to the DOM tree.

Hope this helps,
Andreas

--- In svg-developers@yahoogroups.com, "johnbaronreid1972" 
<[EMAIL PROTECTED]> wrote:
>
> Hi,
> 
> I can't get the following code to work in firefox. ASV6 seems to 
have
> no problems. I imagine I've got something to do with namespaces 
wrong
> but I can't figure out what it is. Under firefox I get the following
> error when getBBox() is called:
> 
> Error: uncaught exception: [Exception... "Component returned failure
> code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMSVGLocatable.getBBox]" 
> nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame ::
> file:///C:/Dev/MyProjects/Bio/svg/bbox_test.svg :: on_event :: line
> 30"  data: no]
> 
> Any help would be much appreciated. I looked at
> http://wiki.svg.org/GetBBox and tried to follow the advice there.
> 
> Thanks,
> John.
> 
> 
> 
> The svg is:
> 
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
> <svg 
>       xmlns="http://www.w3.org/2000/svg"; 
>       baseProfile="full" 
>       onload="init(evt);" 
>       preserveAspectRatio="xMidYMid" 
>       version="1.1" 
>       viewBox="0 0 150 130" 
>       xmlns:ev="http://www.w3.org/2001/xml-events"; 
>       xmlns:xlink="http://www.w3.org/1999/xlink";>
> 
>   <script type="text/javascript"><![CDATA[
>       var svgNS = "http://www.w3.org/2000/svg";;
>       var doc = null;
>       var root = null;
> 
>       function init(evt)
>       {
>               doc = evt.target.ownerDocument;
>               root = doc.documentElement;
>       };
>       
>       function on_event()
>       {
>               var hit_info = doc.getElementById('info');
>               if( null == hit_info ) alert('Could not find: info');
>               else {
>                       var back = doc.getElementById('back');
>                       if (toggle_display(hit_info)) {
>                               var outline = hit_info.getBBox();
>                               back.setAttribute('x', outline.x - 
1.5);
>                               back.setAttribute('y', outline.y - 
1.5);
>                               back.setAttribute('width', 
outline.width + 3);
>                               back.setAttribute('height', 
outline.height + 3);
>                               back.setAttribute('display', 
'inline');
>                       } else {
>                               back.setAttribute('display', 'none');
>                       }
>               }
>       }
>       
>       function toggle_display(el)
>       {
>               if ('none' == el.getAttribute('display')) {
>                       el.setAttribute('display', 'inline');
>                       return true;
>               } else {
>                       el.setAttribute('display', 'none');
>                       return false;
>               }
>       };
> ]]></script>
> 
>       <circle id="hit" cx="50" cy="50" fill="white" 
onclick="on_event()"
> r="2" stroke="black" stroke-width="0.3"/>
>       <rect id="back" display="none" fill="lightgray" rx="0.3"
> stroke="lightgray" stroke-width="0.3"/>
>       <rect id="info" display="none" fill='green' x='5' y='5' 
width='20'
> height='10'/>
> </svg>
>




-----
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/
 

Reply via email to