2 Stimmen

chrome getSVGDocument() funktioniert nicht / wie bekomme ich ein svg Dokument in einer html Datei in chrome?

Die folgenden Angaben sind Codes.

Oder versuchen Sie dies (vorübergehend): http://ihome.ust.hk/~cs_lyfac/svgFrage/a.html

Wenn Sie die Eingabetaste drücken, ist alles in Ordnung und das svgDocument-Objekt wird benachrichtigt. Aber wenn Sie es aktualisieren, ist es undefiniert. Und warum? Außerdem ist es immer undefiniert, wenn es sich im lokalen Modus befindet.

<html>
    <head>
        <title>Animating SVG</title>
        <script type="text/javascript" src="gear.js"></script>
    </head>
    <body bgcolor="#CCAAFF" onload="RotateSVG()">

        <object id="gear" data="gear.svg" type="image/svg+xml"
                width="500" height="500"
                style="position: absolute; top: -250px; left: -250px;">
        </object>

   </body>
</html>

y

function RotateSVG()
{

    var svgTag = document.getElementById("gear");
    var svgDoc = null;

    svgDoc = svgTag.getSVGDocument();
    alert(svgDoc);

}

y

<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     version="1.1"
     baseProfile="full">
<!-- http://www.mozilla.org/projects/svg/ -->
  <g id="gearG" fill-opacity="0.7" stroke="black" stroke-width="0.1cm">
    <circle cx="6cm" cy="2cm" r="100" fill="red"
                    transform="translate(0,50)" />
    <circle cx="6cm" cy="2cm" r="100" fill="blue"
                    transform="translate(70,150)" />
    <circle cx="6cm" cy="2cm" r="100" fill="green"
                    transform="translate(-70,150)" />
  </g>
</svg>

1voto

micahli123 Punkte 430

Ich glaube, ich habe eine Lösung gefunden. Ich sollte die "onload" auf svg-Objekt-Tag statt Body-Tag setzen. Ich denke, in diesem Fall kann svgDoc definiert werden, wenn svg-Objekt geladen wird.

 <object onload="RotateSVG()" id="gear"...

Versuchen Sie dies (vorübergehend): http://ihome.ust.hk/~cs_lyfac/svgFragestellung2/a.html
Dennoch funktioniert firefox(4) in beiden Fällen einwandfrei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X