2

我写了一个小示例页面,如下所示:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>IGO&nbsp;&ndash;&nbsp;IRC Go</title>
        <link rel="stylesheet" type="text/css" href="igo.css" />
        <script type="text/javascript" src="igo.js"></script>
    </head>
    <body>
        <h1 onclick="makeCircle()">IGO&nbsp;&ndash;&nbsp;IRC Go</h1>
        <svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="board" 
            width="4" height="4" viewBox="0 0 4 4">
        <!-- content will be generated by script -->
        </svg>
        <div id="foo"></div>
    </body>
</html>

igo.js看起来像这样的地方:

function makeCircle() {
    var circle = document.createElement("circle");
    var board = document.getElementById("board");
    circle.cx = 4;
    circle.cy = 4;
    circle.r  = 4;
    circle.fill = "lime";
    board.appendChild(circle);
}

问题是:它不起作用;圆圈不显示。你能帮助我吗?

4

1 回答 1

4

请查看以下 URL: http ://blog.blazingcloud.net/2010/09/17/svg-scripting-with-javascript-part-1-simple-circle/

您应该使用如下代码:

var c2 = document.createElementNS("http://www.w3.org/2000/svg", "circle");
c2.setAttribute("cx", "250");
c2.setAttribute("cy", "100");
c2.setAttribute("r", "60");
c2.setAttribute("fill", "#996699");
c2.setAttribute("stroke", "#AA99FF");
c2.setAttribute("stroke-width", "7");
mySvg.appendChild(c2);

您当前正在编辑 DOM 对象,而不是浏览器使用的属性。

现场示例:http: //jsfiddle.net/CJrrz/

于 2013-01-18T18:16:54.817 回答