SVG + PHP + Javascript

4

我正在尝试创建一个由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中打开时,我可以平移,但无法缩放。

当在Google Chrome中打开时,脚本能够正确运行,显示正常,我可以缩放和平移,但是会收到错误信息:

第10行第1列出现错误:文档末尾有额外内容

我在谷歌和stackoverflow中搜索过,但无法找到解决方案。

请您帮忙解决这个问题好吗?


抱歉,我不熟悉“悬挂换行符”。它和 \n 是一样的吗? - Barend
@user1712197,你的代码在我的Linux上的Chromium 21上运行良好。你使用的是哪个版本的Chrome?在demo页面上是否也遇到了同样的错误? - phihag
不,它在演示页面上运行良好。我使用的是Chrome 22.0.1229.79m。我在Windows 7上工作。 - Barend
1
我认为我已经找到了它的原因。我正在使用免费的网络托管,并且发现免费的网络托管在脚本末尾添加了一段代码:<!-- Hosting24 Analytics Code --><script type="text/javascript" src="http://stats.hosting24.com/count.php"></script> <!-- End Of Analytics Code --> 。有人知道如何解决这个问题吗? - Barend
1
尝试使用更好的托管平台,比如Heroku或Phpfog。另外,你可能需要解决一下你的脚本使用了PHP的短标签(<? ?>)这个事实。这可能会导致与基于XML的格式(如svg)有关的问题,并且在网络服务器关闭短标签功能时无法正常工作。 - max
显示剩余4条评论
1个回答

0

我看到你正在添加分析代码,这会导致文件末尾产生额外的输出。通常即使是免费主机在正确的MIME类型下服务文件时也不会添加此内容。您可能需要询问他们的支持如何让图像/svg+xml MIME类型像文本/javascript MIME类型一样被服务(即不添加分析代码)。我从未使用过它们,但cPanel和其他流行的管理系统允许您管理许多其他原因的MIME类型,包括此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接