我一直在使用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的原因是我的客户别无选择,只能在浏览器上运行。
答案 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;
}
我希望这不会破坏任何东西。