Я работаю в колледже undergrad и в настоящее время разрабатываю проект веб-страницы для своей команды. Вначале я решил использовать библиотеку dagre-d3 для построения графиков, и они отлично работают в Chrome. Затем я понимаю, что элемент ForeignObject в SVG не работает на IE (который, как правило, поддерживает основной браузер).dagre-d3 IE обходной путь для элемента SVG foreignObject?
Поскольку моя цель состоит в том, чтобы заполнить содержимое HTML в каждом компоненте графа, мне было интересно, было ли какое-либо обходное решение для реализации этого в IE, все еще использующем dagre-d3. Или какие-либо рекомендации для другой библиотеки графов?
UPDATE:
По существу я хотел создать график, показанный на рисунке ниже:
Ниже приведен код, который я использую сейчас, чтобы построить график с помощью dagre-d3:
HTML Сниппет :
<div id="graph-section">
<svg>
<g transform="translate(20,20)" />
</svg>
</div>
JS Отрывок:
var g = new dagreD3.Digraph();
// Construct nodes
for (var i = 0; i < data.nodes.length; i++) {
var label = "<div class='graphLabel'>";
label += "<div class='comp" + data.nodes[i].value.type + " left'> </div>";
label += "<b> " + data.nodes[i].value.name + "</b><br/>";
label += "<span class='info'>Start: " + data.nodes[i].value.start + "</span><br/>";
label += "<span class='info'>End: " + data.nodes[i].value.end + "</span><br/>";
label += "<span class='info'>Launched by " + data.nodes[i].value.user + "</span>";
label += "</div>";
g.addNode(data.nodes[i].id, { label: label });
}
// Construct edges
for (var j = 0; j < data.links.length; j++) {
g.addEdge(null, data.links[j].start, data.links[j].end);
}
var layout = renderer.run(g, d3.select("#graph-section svg g"));
Что вы на самом деле делаете? Если вы можете делать все с помощью HTML, вам не понадобится 'foreignObject'. Точно так же, если вы можете делать все в SVG, вам это тоже не понадобится. –
Похоже, вы могли нарисовать узлы в чистом HTML, а затем добавить стрелки между ними, используя что-то еще. [Этот вопрос] (http://stackoverflow.com/questions/554167/drawing-arrows-on-an-html-page-to-visualize-semantic-links-between-textual-spans) может помочь. –