首先,jquery是 *** 作普通xhtml的,对应svg这种特殊的标签,或者说xml,浏览器如何区分,当然是通过命名空间:namespaceURI,比如普通html的是http://www.w3.org/1999/xhtml,而svg也有自己的命名空间:http://www.w3.org/2000/svg,jquery在 *** 作的时候没有加以区分,因此导致了这样的错误。怎么办,使用setAttributeNS创建svg标签即可。
其次,我们创建大量标签的时候,喜欢innerHTML=template这种方式,svg也可以,应该说大部分浏览器都可以,可是有些浏览器不可以,我们就需要自己提供兼容的innerSVG方法了。
最后,关于上面说的二点,你都可以对比这个例子。
<!DOCTYPE HTML><html>
<head>
<meta charset=UTF-8>
<title>recursion</title>
<style type="text/css">
</style>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$ (function ()
{
var svg = $ ("<svg xmlns='http://www.w3.org/2000/svg' version='1.1'></svg>")
svg.css (
{
"width" : "200px",
"height" : "200px"
})
var s = $ ("<path d='M10,10 L10,20 L20,20 z' style='fill:rgb(235,252,121) fill-opacity:1 stroke:black stroke-width:1' />")
svg.append (s)
$ ("[name='frame']").append (svg)
})
</script>
</head>
<body>
<iframe name="frame"></iframe>
</body>
</html>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)