首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

js 获取 SVGDocument 的有关问题

2012-02-09 
js 获取 SVGDocument 的问题我要实现一个不改变页面以及svg文件的前提下,通过js动态加载svg,动态为svg添加

js 获取 SVGDocument 的问题
我要实现一个不改变页面以及svg文件的前提下,通过js动态加载svg,动态为svg添加事件,重构右键菜单等功能。
环境是IE+SvgViewer。

我的思路是在页面onload时给页面的某个层里动态添加一个<embed id="NavigateControl" name="svg" type="image/svg+xml" src="11.svg" width="100%" height="100%" >标签,然后操作svg文件,所有操作都是在页面onload时进行的。
然后问题就出来了

JScript code
        try {            CurveControl = document.getElementById('NavigateControl');     //NavigateControl就是embed标签的id            if(CurveControl==null)                return;            svgDoc = CurveControl.getSVGDocument();    //到这里就会出错了,提示没有当前方法。           //得到了svgDoc之后我就可以对svg操作了。        }        catch(e) {            alert(e);        }

CurveControl.getSVGDocument()这个方法在<embed id="NavigateControl" name="svg" type="image/svg+xml" src="11.svg" width="100%" height="100%" >标签写死在页面中时就可以成功取得SVGDocument,可是在动态添加的情况下就不好用了,我应该怎么取得SVGDocument呢,或者我的思路不对?

[解决办法]
svgDoc = svg.getSVGDocument(); //这样试试
[解决办法]
你可以通过getElementsByTagName("embed")获得所有embed,然后根据type判断,符合条件的就对了
[解决办法]
var embeds=getElementsByTagName("embed");
var svgDoc=null;
for(var i=0;i<embeds.length;i++) {
if(embeds[i].type=="image/svg+xml") {
alert("this is a svg object");
svgDoc=embeds[i].getSVGDocument();
}
}

热点排行