我有一个包含div的foreignObject的SVG元素。然后在我的JS中,我这样做:
$("#wrapper>svg>foreignObject>div").sparkline(data);
它在div内部创建了一个画布。当我查看Firebug的HTML代码时,两个浏览器的代码如下:
Firefox:
<svg>
<foreignObject width="20" height="20" x="10" y="-10">
<div>
<canvas style="display: inline-block; width: 18px; height: 19px; vertical-align: top;" width="18" height="19"></canvas>
</div>
</foreignObject>
</svg>
谷歌浏览器:
<svg>
<foreignobject width="20" height="20" x="10" y="-10"/>
<svg>
在 Chrome 中,它甚至不会显示 div。我创建 div 的方式是:
nodeEnter.append("foreignObject")
.attr("width", "20")
.attr("height", "20")
.attr("x", "10")
.attr("y","-10");
$("#wrapper>svg>foreignObject").append("<div></div>");
火狐浏览器的表现符合我的期望,但谷歌浏览器不行。有人有什么建议吗?
另外,我认为问题的一部分在于谷歌浏览器的Firebug HTML输出显示“foreignobject”,而火狐则显示我添加的“foreignObject”。