国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 擴展 > SVG > 正文

如何獲得svg文件的內嵌svg的文檔對象

2024-09-06 19:57:08
字體:
來源:轉載
供稿:網友
svg文件內容如下:(說明:用的不是adobe的SVG,不支持內嵌javascript)
+展開
-XML
<?xml version="1.0" encoding="UTF-8"?> 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:go="http://purl.org/svgmap/svgmap#"> 
<metadata> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:crs="http://www.ogc.org/crs" xmlns:svg="http://www.w3.org/svg" > 
  <rdf:Description> 
  <crs:CoordinateReferenceSystem rdf:resource="http://purl.org/crs/84"  svg:transform="matrix(330.0,0.0,0.0,-320.0,-45710.0,12400.0)" /> 
  </rdf:Description> 
</rdf:RDF> 
</metadata> 
<g go:figure-visibility="1,600"> 
  <image xlink:href="Modelh0.svg"/> 
</g> 
<g go:figure-visibility="600,3000"> 
  <image xlink:href="Modelh1.svg"/> 
</g> 
<g id="Kaigan" go:figure-visibility="1,2000"> 
  <image xlink:href="Jp.svg"/> 
</g> 
<g id="HDS" go:figure-visibility="3000"> 
  <image id="img_hds" xlink:href="ModelHendensyo/Hendensyo.svg"/> 
</g> 
<g go:figure-visibility="3000"> 
  <image xlink:href="ModelSen/SenContainer.svg"/> 
</g> 
<g id="Ten" go:figure-visibility="3000"> 
  <image xlink:href="ModelTen/TenContainer.svg"/> 
</g> 
<g id="Kukan" go:figure-visibility="3000"> 
  <image xlink:href="ModelKukan/KukanContainer.svg"/> 
</g> 
</svg> 
對以上svg文件做簡單說明:就是當顯示倍率在1-600時會調用Modelh0.svg文件,當倍率在3000以上會調用Hendensyo.svg文件。現在我們要對Hendensyo.svg做動態的處理,但不知如何獲得內嵌的svg的文檔對象。現在我的做法是將內嵌的svg文件用html中的javascript解析xml的方法來解析,取得節點對象后動態修改對象的屬性(如:setAttribute('fill','red')),但修改后好像沒反應(解析方法是沒錯的,節點都能取到),不知道是為什么,是不是當成xml解析動態修改對象屬性對svg是沒用的呢,一定要用svgdocument的文檔對象來動態修改呢?郁悶阿,誰叫我們的svg不支持javascript只能用html中的javascript,調查了幾天了也沒結果,高手幫幫忙啊,謝謝。

---
經過測試,是可以進行修改的。下面是測試的代碼:注意,為簡單起見,所有文件放在了一個文件夾下,測試環境為 IE7+ADOBE SVG Viewer 3.03 簡體中文版。

top.html
+展開
-HTML
<!!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type="text/javascript">
var map;
function load()
{
    map = document.getElementById("map");                
    var svg = map.getSVGDocument().documentElement;
    
    for(i = 0;i    {                    
        if(svg.childNodes.item(i).localName == 'g')
        {                        
            var im = map.getSVGDocument().getElementById("m")
            if(im)
            {                            
                alert("here")
                im.setAttributeNS("http://www.w3.org/1999/xlink","href","http://localhost/aa/jsp/Modelh1.svg")
                
                break;
                }
            }
        }        
}        
</script>         
</head>
<body>    
<table style="width:100%; height: 100%; frame="vsides" border="1" cellspacing="0" cellpadding="0">
<tr>
    <td align="center"><input onclick="load()" type="button" value="更換 SVG"></td>
    <td style="width:80%; height:100%">
        <embed id="map" src="top_svg.svg" type="image/svg+xml" width="100%" height="100%" />
    </td>    
</tr>
</table>
</body>
</html>



top_svg.svg
+展開
-XML
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g>
  <image id="mx="0y="0width="100%height="100%" xlink:href="Modelh0.svg"/>
</g>
</svg>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郯城县| 成武县| 渝中区| 新宁县| 咸丰县| 乐业县| 吉林市| 斗六市| 泌阳县| 遵化市| 滁州市| 汝城县| 福泉市| 威远县| 湘潭县| 登封市| 太仆寺旗| 新泰市| 巨鹿县| 聂荣县| 凭祥市| 扬中市| 且末县| 莱州市| 山西省| 自贡市| 喀什市| 奉新县| 南木林县| 当涂县| 绥宁县| 海阳市| 临颍县| 辽阳县| 乌海市| 江川县| 游戏| 宁津县| 仙游县| 镇远县| 甘孜县|