【在线等】jquery通过append添加的svg标签无法显示

【在线等】jquery通过append添加的svg标签无法显示,第1张

首先,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>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11470876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存