每天一个JavaScript实例-从js脚本中访问object元素中的SVG

这篇博客展示了如何在JavaScript中通过`object`元素访问并操作内部的SVG内容。通过获取SVG文档并监听加载事件,当点击SVG中的方形元素时,会改变其宽度、填充颜色和描边颜色,实现动态交互效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>每天一个JavaScript实例-从js脚本中访问object元素中的SVG</title>
<style>
	
</style>



</head>

<body>

<object id="object" data = "每天一个JavaScript实例-SVG中的javaScript展示.svg" style="padding:20px;width:600px;height:600px;">
	<p>No SVG support</p>
</object>
<script type="text/javascript">
var object = document.getElementById("object");
object.onload = function(){
	var svgdoc;

	try {
		svgdoc = object.contentDocument;
	}catch(e){
		try{
			svgdoc = object.getSVGDocument();
		}catch(e){
			alert("SVG in object not support in your environment");
		}
	}
	if(!svgdoc) return;
	var r = svgdoc.rootElement;

	var square = svgdoc.getElementById("square");

	square.onclick = function(){
		var width = parseFloat(square.getAttributeNS(null,"width"));
		width -= 50;
		square.setAttributeNS(null,"width",width);
		var color = square.getAttributeNS(null,"fill");
		if(color == "bule"){
			square.setAttributeNS(null,"fill","yellow");
			square.setAttributeNS(null,"stroke","green");
		}else{
			square.setAttributeNS(null,"fill","bule");
			square.setAttributeNS(null,"stroke","red");

		}
	}
}
</script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值