在javascript变量中存储raphael svg

在javascript变量中存储raphael svg,javascript,jquery,svg,raphael,Javascript,Jquery,Svg,Raphael,我有一个交互式SVG,需要在我的站点上的多个不同位置绘制。目前,我可以通过在每个页面上运行这个来做到这一点 $.getScript( UTIL.theme_dir() + '/assets/js/data/lot-plan.js', function() { // Plan Interactions // Builds the hovers and click events obj.planInteractions(lotInfo); // When clic

我有一个交互式SVG,需要在我的站点上的多个不同位置绘制。目前,我可以通过在每个页面上运行这个来做到这一点

$.getScript( UTIL.theme_dir() + '/assets/js/data/lot-plan.js', function() {

    // Plan Interactions
    // Builds the hovers and click events
    obj.planInteractions(lotInfo);

    // When clicking on custom title blocks, highlight approriate units
    $(".custom-title").on('click', function(){
        if( !$(this).hasClass('disabled') ){

            obj.planHighlight(lotInfo, $(this));

        }
    });

    obj.scaleSVG('#lot-plan');

});
但是正如您所看到的,每次都会调用lot-plan.js文件。我一直在试图找到一种方法来调用它一次,并将其数据存储在一个var中以供重用。这个lot plan文件是Raphael SVG,因此一旦加载代码,它就会在页面上呈现SVG。加载此文件还使我能够访问“lotInfo”对象,其中包含一些配置内容

我一直试图用getScript调用该文件并将其存储在一个变量中,并检查该变量是否已设置,但我无法从该文件访问js,基本上svg不会呈现


我这样做完全错了吗?有人能对此提供一些见解吗?请询问您是否需要更多的信息/代码,我很乐意提供。

< P> JUAT,以防您想考虑<强> XMLHtRPRQuest< <强> >以上我的评论…

您可以收到一个xml字符串,该字符串可用于填充网页上Div的innerHTML。和/或您可以将元素作为XML节点使用,然后将它们克隆到本地SVG中

var  XMLdoc
function loadSVGasXML()
{
    var SVGFile="yourSVGFile.svg"
    var loadXML = new XMLHttpRequest;
    function handler()
    {
        if(loadXML.readyState == 4)
        {
            if (loadXML.status == 200) //---loaded ok---
            {
                //---responseText---
                var xmlString=loadXML.responseText
                //---mySVGDIV.innerHTML=xmlString
                //---DOMParser---
                var parser = new DOMParser();
                XMLdoc=parser.parseFromString(xmlString,"text/xml").documentElement ;
            }
        }
    }
    if (loadXML != null)
    {
        loadXML.open("GET", SVGFile, true);
        loadXML.onreadystatechange = handler;
        loadXML.send();
    }
}

您是否有兴趣首先通过XMLHttpRequest将svg作为XML加载?