在javascript变量中存储raphael svg
我有一个交互式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
$.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加载?