【发布时间】:2012-09-22 11:34:46
【问题描述】:
我正在尝试创建一个 PHP 生成的 SVG,但我一直坚持显示一个带有 Javascript 的 SVG 文件。 javascript是一个平移和缩放功能。
代码是:
<?
header("Content-Type: image/svg+xml");
?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<script xlink:href="SVGPan.js"/>
<g id="viewport" transform="translate(200,200)">
<polygon points="50,125 100,100 150,125 100,150" fill="green" stroke="black" stroke-width="1" />
</g>
</svg>
在 Internet Explorer 中打开时,我可以平移,但无法缩放。
在谷歌浏览器中打开它时,我的脚本运行正常,它显示,我可以缩放和平移,但我收到一条错误消息
第 10 行第 1 列的错误:文档末尾的额外内容
我在 google 和 stackoverflow 上搜索过,但找不到解决方案。
你能帮我解决这个问题吗?
【问题讨论】:
-
抱歉,我不熟悉悬挂的换行符。和\n一样吗?
-
@Jack 文档结尾后的换行符在 XML 中很好,所以不可能。
-
@user1712197 你的代码在phihag.de/2012/so/so-svg 对我来说很好,在 Linux 上使用 Chromium 21。您使用的是哪个版本的 Chrome,您是否在 demo page 处收到相同的错误?
-
我想我找到了它的原因。我在免费虚拟主机上运行,看到免费虚拟主机在脚本末尾添加了一个代码:
-
尝试使用更好的主机,例如 Heroku 或 Phpfog。此外,您可能想要解决您的脚本使用 PHP 短标签 ( ?>) 的事实。这可能会导致基于 XML 的格式(例如 svg)出现问题,并且如果 Web 服务器关闭了短标签,则将无法正常工作。
标签: php javascript svg