【发布时间】:2016-03-12 06:02:06
【问题描述】:
我有一个像这样的简单 SVG 地图:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg>
/*The opening svg tag is longer, thanks to attributes, but for the sake of simplicity,
i cut it short like this....*/
<script xlink:href="/resources/helper_functions.js" type="text/ecmascript"/>
<script xlink:href="/resources/mapApp.js" type="text/ecmascript"/>
<script xlink:href="/resources/snap.svg-min.js" type="text/ecmascript"/>
//it is almost 1 Mb filesize, so shortened it, for simplicity..
</svg>
它工作正常,你可以看到它here
现在,由于加载时间比较长,我想给它添加一些简单的加载动画。我一直在这里和那里挖掘,我知道一些简单的技巧,但是它们仅适用于 html 格式文件,不适用于 svg 格式文件。所以我把我的地图放在单独的html文件中,一个用于内联svg,另一个用于嵌入svg(<embed>标签内的svg文件<html>文档。
因此,问题:
- 嵌入式 svg:Here it is。 该文件非常简单,您可以想象,我只是将 svg 文件嵌入到 html 文件中。问题是:您无法从中访问外部链接,尝试将鼠标悬停在菜单上以显示弹出菜单,然后单击任意位置,我将它们全部链接到谷歌。 如果你点击它,你永远无法访问谷歌。尝试将其与上面的普通 svg 文件进行比较,链接工作正常。
-
内联 svg:你可以看到它here。我复制 svg 文件的内容,将其粘贴到标准的 html 文件中,仅此而已。这是问题变得更糟的地方:当我将鼠标悬停在平台上时,我无法显示弹出菜单,并且当我悬停它时位置不会闪烁。尝试通过与上面的原始 svg 文件进行比较来测试它。 这很烦人;粘贴文件时我没有更改任何内容,但出现问题。 现在,我一直在使用这个文件来识别这个特殊的症状:这是因为无法检测到 2 个开始的外部脚本:
<script xlink:href="/resources/helper_functions.js" type="text/ecmascript"/> <script xlink:href="/resources/mapApp.js" type="text/ecmascript"/>这引出了一个问题:为什么?我只是复制粘贴它,它在普通 svg 中可以正常工作,在嵌入 svg 中也可以(尽管存在其他问题)。
(仅供参考,这两个 .js 文件用于将 Window 客户端坐标转换为 svg 视图框坐标)
有什么帮助吗?
哦,这还是桌面版,还没有移动版...
【问题讨论】:
-
我不太确定将所有这些交互性打包到 SVG 本身是一个好主意,脚本文件也可能需要宝贵的时间来加载。
-
现在,我正在集中精力使页面正常工作,之后,我将优化代码。 BTW @DJDavid98,将外部 ECMAScipt 文件链接到 SVG 文件的正确语法是什么?有时候,我会忘记这些简单的事情......
标签: javascript html svg snap.svg