假设你的HTML中有这个:
<img src='example.svg' />
您如何<rect>, <circle>, <ellipse>通过JavaScript访问example.svg 的内容(即等等)?
您可以通过embed object和svg标记将SVG文件包含在HTML文件中.
embed或object标记需要将图像与URL链接.(这是我更喜欢的,因为我不喜欢我的HTML代码中的所有SVG代码,所以我想保持这种方式.)svg标记(AFAIK)需要在HTML代码中内嵌SVG代码.如何将SVG图标,图像和其他文件包含到我的HTML文件中,而不必将整个SVG代码放入其中,并且仍然可以将样式应用于它们?通过JS应用它们也很好.
当我通过object或包含它们时embed,我似乎无法通过jQuery访问它们,即使是$("#my-svg-div").find("svg")(顺便说一下,几乎所有关于SO的答案都说我应该).我得到了undefined.
谢谢!
我正在通过对象标签加载SVG并需要访问SVG的元素(以操纵它们).我怎样才能做到这一点?
这是我所知道的部分解决方案:
使用SVG参数设置对象标记的参数并参数化SVG元素的属性.这适用于像rect这样的东西,但不适用于我需要移动的g(组)(这需要一个无法参数化的"变换",看起来像).
我已经看到了对通过getElementById("yoursvgid")获得的对象元素使用contentDocument或getSVGDocument()的建议.不幸的是,两者都没有工作 - 是的,我在加载SVG 后调用它们 .
我无法相信没有简单/可靠的方法来从HTML中搜索SVG元素(在这里/ web搜索) - 非常感谢这方面的帮助!
或者,如果有某种方法可以在HTML中调用SVG内部定义的函数(反之亦然),那也是这样做的.通常,在SVG和HTML之间进行通信的任何方式.
我正在尝试调试原因
\n\nvar mapWin = svgMapDoc.getElementById(\'Map\');\nRun Code Online (Sandbox Code Playgroud)\n\n树叶mapWin静止null。我设置了断点和监视,但 IDE 监视窗口中出现以下令人困惑的情况:
name: svgMapDoc.getElementById(\'MainSVG\') value: null\nneame: svgMapDoc.childNodes[2].attributes["id"].nodeValue value: "MainSVG"\nRun Code Online (Sandbox Code Playgroud)\n\n(注意“MainSVG”是“Map”的父级。)
\n\n所以带有“MainSVG”的元素id存在于\'svgMapDoc\'中,它是第三个子节点,但getElementById无法返回它。为什么?我该如何修复它?
===========编辑===========
\n\n评论者要求提供 HTML。这很棘手,因为它非常复杂,但这里有一些片段。
\n\n它最初不是我的代码,而是来自英国国家统计局。他们提供英国 2011 年全国人口普查数据的访问权限。他们提供的一种访问方法是通过 SOAP API,并且他们在NeSS Data Exchange V2.0页面上给出了如何使用其 API 的示例。我无法让一个示例正常工作。It\xe2\x80\x99s在 ZIP NDE Hub Client REST v2.0 (Zip) 37 Mb中的NDE v2.0 Excel 客户端下,是一个基于 Excel 的集线器演示应用程序,允许用户建立已保存数据的存储库,并通过 SVG 专题图查看”。但请注意,我对他们的示例进行了一些更改。
\n\n地图<DIV>SVG 数据通过以下几行添加到页面:
document.writeln(\'<DIV id=mapPanel style="position:absolute;left:26%;top:7%; height=63%; width=50%;">\');\ndocument.writeln(\'<EMBED height=100% …Run Code Online (Sandbox Code Playgroud)