私はこれに似たいくつかの質問を読んだことがありますが、私のコードが正しく動作することができません。ユーザーがSVGエリアをクリックしたときにSVG要素を追加したい。ここでHTML5 SVGに動的に要素を追加するにはどうすればよいですか?
は、それが正しくレンダリング、SVGと私のHTML5です:ここでは
<!DOCTYPE html>
<html>
<head>
<script src="jquery-1.6.2.min.js"></script>
<script src="svgdraw.js"></script>
</head>
<body>
<svg id="canvas" width="500" height="500">
<circle cx="80" cy="80" r="50" fill="blue"/>
</svg>
</body>
</html>
は、クリックイベントで実行されるJavaScriptです:
Google Chromeでvar svgDocument = document.getElementById('canvas');
var svgns = "http://www.w3.org/2000/svg";
var shape = svgDocument.createElementNS(svgns,"circle");
shape.setAttributeNS(null, "cx", 25);
shape.setAttributeNS(null, "cy", 25);
shape.setAttributeNS(null, "r", 20);
shape.setAttributeNS(null, "fill", "green");
document.getElementById('canvas').appendChild(shape);
私はそのエラーメッセージが表示されますcreateElementNS
は存在しません。しかし、すべてNS
とnull
のいずれかを削除しても機能しません。これを行う正しい方法は何ですか?ブラウザごとに違いはありますか?
を私はあなたの問題を再現しようとしたとき、私は* svgDocument *が未定義であったことを検出しました。それがなぜ起こっているのか? –
私はhtml5はもはや名前空間を必要としませんでしたか? – yota