我想访问在 VML 中存储填充图像的 VML 元素。我在下面粘贴了我的演示代码。请注意,它仅在包含raphael.js和jquery.js时才有效。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Raphael Test</title>
<script type="text/javascript" src="js/libs/jquery.js"></script>
<script type="text/javascript" src="js/libs/raphael.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var raphael, path, pattern;
raphael = Raphael(document.getElementById('raphael'), 500, 500);
path = raphael.circle(100, 100, 80);
path.attr('stroke-width', 3);
path.attr('fill', 'url(http://3.bp.blogspot.com/_M4WdA9j-b-g/TLMF9JJJwcI/AAAAAAAAAV4/p0Y_Wo3S3sQ/s1600/Landscape1.jpg)');
pattern = $(path.node).attr('fill');
if(pattern) {
pattern = pattern.replace('url(', '').replace(')', '');
pattern = $(pattern);
}
// Shape element documentation: http://msdn.microsoft.com/en-us/library/hh846327(v=vs.85).aspx#shape_element
// Fill element documentation: http://msdn.microsoft.com/en-us/library/bb229596(v=vs.85).aspx
if(Raphael.vml) { // SVG not supported (IE7 & IE8) and it doesn't work :/
console.log($(path.node).find('fill').attr('href'));
}
else { // SVG supported and it prints correct URL
console.log($(pattern).find('image').attr('href'));
}
});
</script>
</head>
<body>
<div id="raphael"></div>
</body>
</html>
在 SVG 中,填充图像是使用模式元素提供的。这就是我获取这个元素的原因,我可以轻松访问它的 href 属性。
VML 完全不同。路径是用 shape 元素创建的,里面有 fill 元素。但不幸的是,填充元素没有任何属性:/
有人可以帮我访问 VML 填充图像元素吗?