我将一个SVG文件嵌入到一个HTML文档中。我可以使用ids和类来使用javascript访问html和svg中的元素。但是,我想在嵌入式svg上执行一些拖放操作。我在http://svg-whiz.com/svg/DragAndDrop.svg中使用了下面的示例,将SVG与javascript分开,但是当我将SVG嵌入HTML中时,它给我带来了麻烦。SVG中的init函数在嵌入时不起作用
onload="initSVG(evt)"我需要在HTML中访问SVG的根目录,这样才能使拖放例程正常工作。独立svg的原始代码是这样编写的:
function initSVG(evt)
{
SVGDocument = evt.target.ownerDocument;
SVGRoot = SVGDocument.documentElement;
TrueCoords = SVGRoot.createSVGPoint();
GrabPoint = SVGRoot.createSVGPoint();
}我的重写是这样的,这样它就可以在没有onload事件调用的情况下运行:
function initSVG()
{
SVGRoot = document.getElementsByTagName("svg");
TrueCoords = SVGRoot.createSVGPoint();
GrabPoint = SVGRoot.createSVGPoint();
}这给出了错误:"Object #没有方法'CreateSVGPoint'“。因此,它似乎不会以与独立svg相同的方式处理导入的SVG。如何获取SVGRoot?
谢谢!
另外,我知道我可能应该使用jquery,但我想学习原始的DOM。
发布于 2011-10-24 08:42:07
getElementsByTagName函数返回一个NodeList,而不是一个元素。尝试:
SVGRoot = document.getElementsByTagName("svg")[0];https://stackoverflow.com/questions/7870105
复制相似问题