我正在寻找一种仅使用mxGraph Javascript而不使用SVG Canvas 来呈现HTML图形的方法。用户手册说:
但是,我尝试了以下操作但未成功:
var editor = new mxEditor();
var graph = new mxGraph(graphContElem, new mxGraphModel(), 'fastest'); // fastest maps to stricthtml
graph.setHtmlLabels(true);
graph.dialect = mxConstants.DIALECT_STRICTHTML;
editor.graph = graph;
editor.createGraph();
添加此单元格:
var prototype = new mxCell('<input type="text" value="test" />', new mxGeometry(0, 0, w, h), style);
prototype.setVertex(true);
... import cells ...
导致此:
<svg style="width: 100%; height: 100%; display: block; min-width: 1px; min-height: 1px;">
...
<g transform="translate(104,61)">
<foreignObject style="overflow:visible;" pointer-events="all" width="173" height="19">
<div style="display:inline-block;font-size:11px;font-family:Arial,Helvetica;color:#774400;line-height:1.2;vertical-align:top;white-space:nowrap;text-align:center;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">
<input type="text" value="test">
</div>
</div>
</foreignObject>
</g>
...
</svg>
我的目标是开发表单编辑器;因此,图的单元格将是HTML窗口小部件或Web组件,例如输入字段。
使用mxGraph可以吗?提前致谢!
最佳答案
文档需要更新,mxGraph很久以来不支持该模式。
关于MxGraph:是否可以在没有SVG的情况下以HTML形式呈现图形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37116136/