Javascript Can';不能通过其ID访问SVG
我想在加载文件以供交互使用后访问svg的id及其路径。我用一个函数加载SVG,并将节点导入DOM。无论是在document.ready还是在document.addEventListener(“DOMContentLoaded”,function(event)中,我都可以通过元素的id获取元素。获取元素的唯一方法是在交互代码周围设置超时 我想要的是SVG(900kb)及其DOM应该在加载所有其他代码之前加载,但直到现在我还找不到合适的解决方案 我非常困惑,因为如果我用firebug在浏览器中查看DOM,我可以看到ID为的div,但我无法获取它……我在代码中找不到问题,因为我将其加载到DOM中,并在DOM准备好后访问它? 这里有人找到解决办法吗 这是我加载svg的代码:Javascript Can';不能通过其ID访问SVG,javascript,dom,svg,get,load,Javascript,Dom,Svg,Get,Load,我想在加载文件以供交互使用后访问svg的id及其路径。我用一个函数加载SVG,并将节点导入DOM。无论是在document.ready还是在document.addEventListener(“DOMContentLoaded”,function(event)中,我都可以通过元素的id获取元素。获取元素的唯一方法是在交互代码周围设置超时 我想要的是SVG(900kb)及其DOM应该在加载所有其他代码之前加载,但直到现在我还找不到合适的解决方案 我非常困惑,因为如果我用firebug在浏览器中查看
function fetchXML (url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onreadystatechange = function (evt) {
if (xhr.readyState === 4) {
callback(xhr.responseXML);
}
};
xhr.send(null);
};
fetchXML("svg/bez_grey.svg",function(newSVGDoc){
var n = document.importNode(newSVGDoc.documentElement,true);
var mysvg = document.getElementById("map");
mysvg.appendChild(n);
})
document.addEventListener("DOMContentLoaded", function(event) {
// Access the SVG-Elements here
}):
在调用
var mysvg=document.getElementById(“map”)
之前,您需要调用document.documentElement.appendChild(n);
。这将n
加载到document
的DOM中。您可以删除语句mysvg.appendChild(n);
此解决方案基于以下工作代码示例: