MxGraph: Is it possible to render a graph in HTML without SVG?

ぃ、小莉子 提交于 2020-01-13 09:33:28

问题


I'm looking for a way to render a graph in HTML, solely using mxGraph Javascript, without the use of an SVG canvas. The user manual says:

mxGraph also includes the feature to render entirely using html, this limits the range of functionality available, but is suitable for more simple diagrams."

However, I've tried the following without success:

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();

Adding this cell:

var prototype = new mxCell('<input type="text" value="test" />', new mxGeometry(0, 0, w, h), style);
prototype.setVertex(true);
... import cells ...

Leads to this:

<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>

My goal is the development of a form editor; therefore the cells of the graph would be HTML widgets or web components, as, for example, input fields.

Is this possible with mxGraph? Thanks in advance!


回答1:


The documentation needs updating, mxGraph hasn't supported that mode for a long time.



来源:https://stackoverflow.com/questions/37116136/mxgraph-is-it-possible-to-render-a-graph-in-html-without-svg

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!