SVG内的iframe没有加载

时间:2014-10-01 06:30:42

标签: html iframe svg

据我所知,使用<foreignObject />标记可以在SVG中添加HTML标记。 我想通过使用iframe内部SVG加载页面,但它不起作用。我错过了什么吗?或者它是不可能使用HTML内部SVG?

这是我的代码:

<svg xmlns="http://www.w3.org/2000/svg">
    <foreignObject x="0" y="0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;">
        <iframe src="content.html" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
    </foreignObject>
</svg>

我尝试直接从浏览器加载它,它什么也没显示。

enter image description here

1 个答案:

答案 0 :(得分:2)

foreignObject元素需要width和height属性。它们没有宽度和高度的CSS样式,实际上你提供的所有CSS都是不合适的,并且对于foreignObject元素会被忽略。

这应该有用(假设你没有使用IE,因为它当前不支持foreignObject)

<svg xmlns="http://www.w3.org/2000/svg">
    <foreignObject width="100%" height="100%">
        <iframe src="content.html" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
    </foreignObject>
</svg>

请注意,如果您将iframe移动到foreignObject边界使用位置绝对位置之外,那么也可能会导致问题。