日期:2012-08-24  浏览次数:21398 次

 

在html中,显示svg,<object>看起来要比<embed>更加合适,因为当svg尺寸过大时,<object>只会对其缩放,而<embed>会将图像裁剪掉

正所谓:既生瑜,何生亮。但是<object>是一个比<embed>更不正式的标签!

如果你的svg需要给更多的人看,那么使用<embed>是一个不错的选择!

很简单,我们可以从svg读出其width,height!

由于svg也是XML格式的,那么就容易多了!

<%@ Import NameSpace="System.XML" %>   别忘了导入相应的名称空间

方法如下:相应的函数的作用我就不详细说明了,.NET Framework中都有详细的说明
sub showSvgWindow(theSvgPath as string)
 dim reader as xmlTextReader  = Nothing
 dim nodeAttribtion as new arrayList()
 dim i,width,height as integer
 
 reader = new xmlTextReader(server.MapPath(theSvgPath))
 dim exp as exception
 
 Try
 While reader.Read()
    If reader.NodeType = XmlNodeType.Element And reader.Name = "svg" Then
       If reader.HasAttributes Then
       For i = 0 to (reader.attributeCount-1)
        reader.moveToAttribute(i)
     If reader.Name = "width" Then
        width = reader.Value
     End If
     If reader.Name = "height" Then
        height = reader.Value
     End If
    Next
    End If
    Exit While
    End If
 End While
 Catch exp
 
 End Try
 
 If CInt(width) < 50 Then
    width = "50"
 Else If CInt(height) < 50 Then
    height = "50"
 End If
 svgWindow.Text = "<embed src=" & theSvgPath & " height=" & height & "px width=" & width & "px></embed>"
 svgTitle.Text = request.QueryString("title")
end sub