在过去的几天里,我遇到了一个让我头疼的问题。
我有一个网页,用户可以在其中创建某种序列图(使用joint.js和rappid.js v1.7.1)。这个想法是:用户有一些可用的节点,可以拖到画布上(在joint.js中是纸张),然后这些节点可以相互链接。
它本身的功能在chrome和internet中运行得很好,但我似乎无法让它在Firefox中工作(47.0.1版)。
一旦我把一个节点放到画布上,我就会得到以下错误:
如前所述,此错误仅发生在Firefox中,并且使用Firefox和Chrome调试器函数,我能够告诉您,“相同”对象确实在Chrome中接收SVG矩阵,而在Firefox中为null。
节点包含SVG图像内容:
defaults: joint.util.deepSupplement({
type: 'stations.StartPoint',
attrs: {
'.stations-point-title-text': { 'text': 'Start' },
'.stations-point-content-image': { "xlink:href": "data:image/svg+xml;base64,..." }
}
}, stations.Point.prototype.defaults)
rappid.js中发生错误的代码行
getTransformToElement: function (a) {
return a.getScreenCTM().inverse().multiply(this.node.getScreenCTM())
},
有没有人有过类似的joint.js经验?如有任何帮助或建议,将不胜感激。
谢谢
编辑:--我找到了这个问题的解决方案,尽管我必须承认我并不完全理解它。在分析了一个在Firefox中工作的演示程序之后,我发现不同之处在于,我没有在代码中调用Navigator.render()功能(因为我没有使用导航器)。加上那个电话解决了我的问题。(http://jointjs.com/rappid/docs/ui/navigator)
发布于 2016-07-05 12:02:20
一旦移到0.9.5,问题就消失了。但是要确保在你的index.html中包括
< script > SVGElement.prototype.getTransformToElement = SVGElement.prototype.getTransformToElement而行不悖的函数(ToElement){返回;< };< / script >
https://stackoverflow.com/questions/38140472
复制相似问题