Belows是代码。
或试试(暂时):http://ihome.ust.hk/~cs_lyfac/svgQuestion/a.html
当你点击输入它很好并且svgDocument对象被警告。但如果你刷新它,它是未定义的。为什么?而且,在本地模式下它总是未定义。
<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>
和
function RotateSVG()
{
var svgTag = document.getElementById("gear");
var svgDoc = null;
svgDoc = svgTag.getSVGDocument();
alert(svgDoc);
}
和
<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>
答案 0 :(得分:1)
我想我已经想通了。我应该将“onload”放在svg对象标签而不是body标签上。我想在这种情况下,可以在加载svg对象时定义svgDoc。
<object onload="RotateSVG()" id="gear"...
试试这个(暂时):http://ihome.ust.hk/~cs_lyfac/svgQuestion2/a.html
然而firefox(4)在这两种情况下都能正常工作。