Firefox 3.0.12中的Raphael JS问题

时间:2012-12-06 22:47:45

标签: javascript raphael firefox-3

我一直在使用Raphael SVG / VML库,该网站声称它支持Firefox 3.0+。

但是我使用最新版本的Raphael和jQuery 1.8.3时遇到了问题。

我可以在此论文中创建论文var paper = Raphael('divID',500,500);并创建形状,例如var rect1 = paper.rect(0,0,100,100);

当我尝试为此rect获取一个边界框时,会出现问题。在控制台中,我得到一个 this.join不是函数

创建路径时我也遇到了同样的问题。

从我所看到的似乎是getBBox函数或pathToString函数的问题。有没有人遇到过这个问题,有没有人知道我可以改变什么来解决这个问题?

编辑:我特别询问3.0.12的原因是我的客户别无选择,只能在浏览器上运行。

1 个答案:

答案 0 :(得分:1)

问题出在Raphael库中的clone函数内部。此功能不能在旧版本的Firefox中正确克隆功能。其中一个解决方案是修改代码以返回函数而不克隆它们(就像它使用简单的JavaScript类型一样)

因此,Raphael的clone函数的最终代码将如下所示:

function clone(obj) {
    if (Object(obj) !== obj || typeof obj === 'function') {
        return obj;
    }
    var res = new obj.constructor;
    for (var key in obj) if (obj[has](key)) {
        res[key] = clone(obj[key]);
    }
    return res;
}

我希望这不会破坏任何东西。