JavaScript获得SVG的DOM

看这篇前,请先看下我的前两篇博文“SVG 图形嵌入html页面”和“在SVG中使用JavaScript”(篇幅较短)。

这篇的基础环境都在这两篇博文。

如果你之前用过JavaScript操纵过html的DOM,想必对document这个变量特别眼熟。

这里如果在JavaScript脚本中直接使用document的话,对应的不是html的DOM,而是SVG的。

有个注意点是:如果在脚本的开始就使用document,有时候document会是空。

我在网络上搜索一番,得到的解答是:因为svg需要绘制时间,如果过早使用document有可能得到空。

我找到两个解决办法,推荐第二种:

1.setTimeout("t()",1000);

等待1秒钟后调用方法t(),这是JavaScript代码,t()方法中包含的是需要运行的JavaScript脚本,当然也包含了对document的使用。

一秒钟,网络状况还可以的话,一般够SVG的绘制时间了。

2.<svg οnlοad="begin()" >

svg文档中的代码,在svg标签中加入(上面的代码去除了一些)οnlοad="init(evt)".

当svg加载好后就会调用init(evt)方法,这是一个JavaScript方法。

JavaScript脚本:

function init(evt) {
    svgDoc = evt.target.ownerDocument;
    svgRoot = svgDoc.rootElement;
}

 

evt指onload Event事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值