Css IE 8/9中的变换矩阵问题

Css IE 8/9中的变换矩阵问题,css,internet-explorer,matrix,svg,css-transforms,Css,Internet Explorer,Matrix,Svg,Css Transforms,我试图在我的网页上获得SVG对象的变换矩阵。下面是我用来确保它被四个CSS转换属性之一拾取的当前语句: $("#printdiv svg").each(function(){ var webkitMatrix = false; var transform = $(this).css("transform"); if (transform == null || transform.indexOf("matrix") == -1) transform =

我试图在我的网页上获得SVG对象的变换矩阵。下面是我用来确保它被四个CSS转换属性之一拾取的当前语句:

$("#printdiv svg").each(function(){

    var webkitMatrix = false;

    var transform = $(this).css("transform");

    if (transform == null || transform.indexOf("matrix") == -1)
       transform = $(this).css("-ms-transform");

    if (transform == null || transform.indexOf("matrix") == -1)
        transform = $(this).css("-moz-transform");

    if (transform == null || transform.indexOf("matrix") == -1){
        transform = $(this).css("-webkit-transform");
        webkitMatrix = true;
    }

    /* do stuff with matrix */

});
(我之所以有一个var“webkitMatrix”,是因为如果为true,函数必须以不同的方式解析
-webkit转换
矩阵)

我的问题是(就像我所做的大多数事情一样),IE10、Chrome和FireFox可以很好地选择矩阵,但IE8/9不能

在这里,您可以看到在IE9模式/标准和FireFox(最新版本)下使用IE10时将每个CSS属性打印到控制台的结果: (此处放大版:)

有什么东西可以使用吗,可能是一个
过滤器:
或一个不同的转换属性,这样我就可以获取SVG信息了?

IE9

您可以这样解析SVG矩阵:

svgElement = document.getElementById("mySVG_ID");
var matrixIE = new Array();
matrixIE[0] = svgElement.createSVGMatrix().a;
matrixIE[1] = svgElement.createSVGMatrix().c; //C and B are switched
matrixIE[2] = svgElement.createSVGMatrix().b;
matrixIE[3] = svgElement.createSVGMatrix().d;
matrixIE[4] = $("#mySVG_ID").css("left");
matrixIE[5] = $("#mySVG_ID").css("top");
IE8


对于不兼容的浏览器,传单使用VML对象而不是SVG对象。VML元素具有类名
。传单VML形状
。因为我依靠
html2canvas
将我的页面呈现为图像,并且
html2canvas
在IE8下不起作用,所以我没有理由研究如何解析VML矩阵。

IE8不支持SVG或CSS转换。如果你能提供一把可以工作的小提琴,故障排除就会容易得多。我不能,因为这是我工作场所的一个项目。很抱歉,我无法提供一个fiddle或其他代码。首先,jQuery负责供应商前缀本身。其次,afaik IE不支持svg对象上的css转换。一点也不支持?它呈现SVG,我只需要这些信息。对于IE,除了获取信息而不是转换,还有其他选择吗?