2013-05-02 51 views
0

我使用的是带有“PURE JAVASCRIPT”的Fusion Chart,但带有我们希望在客户端的导出功能。FusionChart在客户端提供了SVG或VML的图表。我们要合并这个VML或SVG到XML文件以及XSLT样式表。到现在为止,我们想要将导出到XML功能导入到我们的应用程序中。基于浏览器的包含SVG和VML的XML

现在问题是SVG只能被Mozilla,Chrome浏览器和IE浏览器给出VML。所以客户端将获得包含SVG和VML的公共文件,但问题是XSLT中没有检测浏览器类型和版本的意思。我使用了IE条件注释,但它在chrome,mozilla中无效并且不起作用在ie.Even用JavaScript doesnot工作,我会想在JavaScript变量值的XSLT变量,这将不可行,因为XML先呈现之前的JavaScript,所以我不能有共同的XML + XSLT代码为所有browser.as我们希望将独立的XML提供给包含数据+图像的客户端。

任何有关这方面的帮助将不胜感激。 chart.getSVGString() -

<?xml version="1.0" encoding="ISO-8859-1"?> 
<?xml-stylesheet type="text/xsl" href="#stylesheet"?> 
<!DOCTYPE doc [ 
<!ATTLIST xsl:stylesheet id ID #REQUIRED>]> 
<doc> 
<xsl:stylesheet id="stylesheet" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > 
<xsl:template match="xsl:stylesheet" /> 
<xsl:template match="/doc"> 
<html> 
<head> 
<style> 
    body{ 
    font-family: Arial, Verdana,Helvetica, sans-serif; 
    } 
    table{ 
    font-size: 11px; 
    } 
th{ 
background-color:#D1D2D4; 
} 
</style> 
</head> 
<body> 
<br /> 
    <!-- detect browser here for getting SVG or VML if Mozilla,chrome then SVG-> 

<svg xmlns="http://www.w3.org/2000/svg"........> </svg> 

<!-- If IE <=8 then VML --> 

<br/> 
<table border="2" cellspacing="1" width="86%"> 
    <tr> 
    <th>Category</th> 
    <th>Hits</th> 
    <th>Bytes</th> 
    </tr> 
    <tr> 
    <td>IPAddress</td> 
    <td>1818</td> 
    <td>747.32 MB</td> 
    </tr> 
    <tr> 
    <td>None</td> 
    <td>1523</td> 
    <td>27.82 MB</td> 
    </tr> 
</table> 
    </body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 
</doc> 

感谢, 阿莎Kosht​​i

+0

也许提供XML和SVG和VML都支持,将呈现。没有任何标准浏览器支持标准模式! – 2013-05-02 21:00:47

+0

ShamasisBhattacharya ..我不想要这两个,但想要的东西,我可以检查浏览器类型,因此可以呈现其中之一。 – 2013-05-03 04:44:45

回答

0

您可以使用API​​总是得到SVG的字符串(在IE6 +或任何浏览器)。这会有帮助吗?

+0

yep ..我可以得到SVG,但是SVG +其他数据被组合并放到XML中以便给客户端,现在如果客户端在IE6或IE7中打开该文件,那么它将根本无法呈现SVG内容.so因此,我希望条件检查是否呈现SVG或VML – 2013-05-02 11:17:10

+0

您无法使用XSLT检测浏览器 - http://stackoverflow.com/questions/13274529/how-to-change-xml-by-browser。但是,您可以使用JavaScript本身进行检查。我不确定你是如何构建XSLT的。如果您可以分享代码或缩小代码,我可以尝试提供帮助。 – sudipto 2013-05-06 08:57:14

+0

我已经包括上面的例子,所以如果你能帮助我,那将是件好事。 – 2013-05-07 06:47:30