Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';不能通过其ID访问SVG_Javascript_Dom_Svg_Get_Load - Fatal编程技术网

Javascript Can';不能通过其ID访问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在浏览器中查看

我想在加载文件以供交互使用后访问svg的id及其路径。我用一个函数加载SVG,并将节点导入DOM。无论是在document.ready还是在document.addEventListener(“DOMContentLoaded”,function(event)中,我都可以通过元素的id获取元素。获取元素的唯一方法是在交互代码周围设置超时

我想要的是SVG(900kb)及其DOM应该在加载所有其他代码之前加载,但直到现在我还找不到合适的解决方案

我非常困惑,因为如果我用firebug在浏览器中查看DOM,我可以看到ID为的div,但我无法获取它……我在代码中找不到问题,因为我将其加载到DOM中,并在DOM准备好后访问它? 这里有人找到解决办法吗

这是我加载svg的代码:

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);

此解决方案基于以下工作代码示例: