添加xmlns="http://www.w3.org/2000/svg" version="1.1"
到您的SVG标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/html1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
<head>
<title>SVG iPhone Test</title>
</head>
<body >
<svg width="500" height="220" xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect x="2" y="2" width="496" height="216" stroke="#000" stroke-width="2px" fill="transparent"></rect>
</svg>
</body>
</html>
通过http://www.invalidpage.com/svg/svgtest.html
被输送的HTTP MIME类型是 "Content-Type: text/html"
。 HTML inline svg使用MIME类型"Content-Type: text/xml"
您可以通过使用XML结束文档而不是HTML,因为它们有done here。
不确定Ipad是否关心Content-Type
但其他浏览器。
更新
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
也可以用;这是Ipad svg示例中显示的内容。当文档以XML格式而不是HTML格式传送时,应以<xml version="1.0" standalone="no">
开头;
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="500" height="220" xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect x="2" y="2" width="496" height="216" stroke="#000" stroke-width="2px" fill="transparent"></rect>
</svg>
其实,事情是这样的工作原理上除了iPad/iPhone的一切,据我可以告诉。我插入了RaphaelJS,现在它也在iOS上工作。我也尝试过xmlns和version属性,结果相同,除了iOS以外的其他地方都可以使用。 – 2010-12-29 16:38:37
它在使用webkit引擎的Chrome中渲染(所以Ipad应该渲染 - 我还没有):但是目前没有在firefox 3.6.13中工作......这可能是因为内容类型是“Content-Type:text/html“...在严格的xml规则下,需要定义xmlns。 <!DOCTYPE html>不适用严格的xml规则,但是firefox 3.6.13不幸的是仍然不呈现<!DOCTYPE html>内联svg。 ...通过使用http://code.google.com/chrome/chromeframe/它也将在Internet Explorer中工作 – Wayne 2010-12-29 17:05:26
我知道理论上它应该可以在任何webkit浏览器中工作,如果它在一个工作。它只是没有。我在我的主域名的另一个页面中切换了所有内容,以测试您呈现的所有不同选项,但都无效。似乎工作的唯一的东西是通过JavaScript后加载生成它。我已经离开原来的页面,以便它仍然符合原始问题。 – 2011-01-03 17:32:33