Я столкнулся с проблемой, которая вызывает у меня некоторые головные боли за последние несколько дней.Rappid.js - getScreenCTM возвращает null в Firefox
У меня есть веб-страница, где пользователи могут создавать своего рода диаграмму последовательности (используя joint.js и rappid.js v1.7.1). Идея заключается в том, что пользователь имеет некоторые доступные узлы, которые можно перетащить на холст (бумага в joint.js), а затем эти узлы могут быть связаны друг с другом.
Функциональность на самом деле отлично работает в Chrome и Internet Explorer, но я не могу заставить ее работать в Firefox (версия 47.0.1).
Как только я бросаю узел на полотне я получаю следующее сообщение об ошибке:
Как сказал эта ошибка возникает только в Firefox и с помощью отладчика функций Firefox и Chrome я был в состоянии сказать, что «то же самое «объект получает матрицу SVG в Chrome, а ее значение - в Firefox.
Узел содержит 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? Любая помощь или советы будут оценены.
Благодаря
EDIT: Я нашел решение этой проблемы, хотя я должен признаться, я не совсем понимаю. После анализа демо-программы, которая работала в Firefox, я понял, что разница в том, что я не вызывал функцию Navigator.render() в своем коде (поскольку я не пользовался навигатором). Добавление этого вызова разрешило мою проблему. (http://jointjs.com/rappid/docs/ui/navigator)
Является элементом, прикрепленным к документу? Отображается ли оно: нет? –
@RobertLongson Да, он прикреплен к документу и отображению: block –
Отображаются ли какие-либо из его предков: нет? Я думаю, вам нужно создать здесь [mcve]. –