我们的NoFlo图形组件突然压缩成一个不可编辑的框,表示" WaitForward"。见附图。
有一段时间,除了Opera之外,每个浏览器都会发生这种情况,所以我可以去那里更新图表。然后,几周之后,即使Opera也不会渲染组件,所以现在我无法再向现有的NoFlo表单添加逻辑。
我们几乎没有接触与NoFlo相关的代码,因此我不认为我们的环境发生了任何变化。我的理论是,最近更新了浏览器(例如Chrome,曾经是用于编辑的稳定浏览器),并且此工具需要某种更新才能正确呈现。然而,我在NoFlo GitHub指令中找不到这个问题的参考,并且看起来没有人在StackOverflow上遇到这个问题(当然,直到现在)。
控制台中的错误消息显示:: " TypeError:this.node.getTransformToElement不是函数"
我把这个错误搞砸到谷歌,看到其他人正在经历一个名为clientIO的事情,并且谷歌Chrome最近的更新是罪魁祸首,因为Chrome最近删除了允许相关js运行的核心功能。
但是......我该如何解决这个问题呢?这是个问题!
答案 0 :(得分:0)
看起来Google Chrome的最新更新是罪魁祸首。 直接来自jointjs.com的网站::
Link to announcement from jointjs.com
公告:getTransformToElement()polyfill 2015年11月12日
不幸的是,新版Chrome(48)删除了JointJS / Rappid的核心功能。此功能是SVGGraphicsElement.getTransformToElement()函数。删除该方法背后的动机是 - 根据Chrome团队 - 打开有关此方法应该如何表现的问题。
为了克服未来Chrome版本的兼容性问题,我们准备了一个确保此方法存在的polyfill。在发布新版本的JointJS / Rappid之前(或者,如果您因任何原因,不想升级),请在加载应用程序JavaScript之前包含以下代码:
SVGElement.prototype.getTransformToElement = SVGElement.prototype.getTransformToElement || function(toElement){ return toElement.getScreenCTM()。inverse()。multiply(this.getScreenCTM()); };
我不确定将此代码放在我的noflo目录中的确切位置。所以我试着把它放在“app / js / main.js”文件的顶部。它似乎工作! (但建议更好的位置是非常受欢迎的。)
我希望这可以帮助那些遇到同样问题的人。