我正在尝试仅在页面加载时或之后创建SVG标记结构。如何使用javascript或jquery动态添加SVG图形?
这个请求可能看起来很奇怪,但这是必须的,因为大多数的html标记都是由编译的创作软件应用程序生成的,所以我不能篡改它。我只能根据需要“注入”javascript来创建其他资产(例如:Div)。
请参阅下面的标记。如果我手动将SVG标记在目标位置,页面和SVG渲染正确[HTML标记的部分已经为清楚起见,省略]
<html>
....
<script>
function run() {
var newSvg = document.getElementById('myDiv');
newSvg.outerHTML+='<svg style="position:absolute;z-index:10;margin:0;padding:0;top:0em;left:0.5em" onclick="go()" width="100" height=100><circle cx="400" cy="400" r="40" stroke="red" stroke-width="4" fill="blue" />';
}
</script>
<body>
....
<div id="myDiv"></div>
....
<script>
run();
</script>
</body>
</html>
。如果我尝试动态创建标记,我什么也得不到。
当我在页面加载后查看html源代码时,没有应该由函数创建的SVG标记。
我已经尝试通过<body onLoad="run()">
事件做,但它也不起作用。
注意:当我需要动态创建一个新的DIV时,此函数工作正常。
我在做什么错?在此先感谢所有人。
我刚编辑我更多一些信息的回答,请看看是否适合您。 – t1nr2y
你在尝试使用什么浏览器? Safari和IE不支持使用outerHTML创建SVG内容。 –
这是在IE(项目需求),但我很沮丧,它现在不适用于Firefox。我在IE上工作(我认为)。 我希望它能在IE和FF上工作。感谢提醒。 – MarkL