3

I am trying to make a simple web page with the Dracula Graph Libary, and I keep getting the error "SVG container not found." in the Chrome console. I am using code from the Dracula homepage (https://www.graphdracula.net/) Please let me know how I can fix this. Thank you.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Map</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.3.0/raphael.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/graphdracula/1.2.1/dracula.min.js"></script>
    <script type="text/javascript">

      var g = new Dracula.Graph();

g.addEdge("strawberry", "cherry");
g.addEdge("strawberry", "apple");
g.addEdge("strawberry", "tomato");

g.addEdge("tomato", "apple");
g.addEdge("tomato", "kiwi");

g.addEdge("cherry", "apple");
g.addEdge("cherry", "kiwi");

var layouter = new Dracula.Layout.Spring(g);
layouter.layout();

var renderer = new Dracula.Renderer.Raphael('canvas', g, 400, 300);
renderer.draw();

  </script>

  </head>
  <body>
      <div id="canvas"></div>
  </body>
</html>

1 Answers1

2

Just ran across the same issue... I solved it by changing

var renderer = new Dracula.Renderer.Raphael('canvas', g, 400, 300);

to

var renderer = new Dracula.Renderer.Raphael(document.getElementById('canvas'), g, 400, 300);

Heres a working jsfiddle: https://jsfiddle.net/millerh1/Lf1nspx3/

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.3.0/raphael.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/graphdracula/1.2.1/dracula.min.js"></script>
<div id="canvas"></div>
<script>
  var g = new Dracula.Graph();

  g.addEdge("strawberry", "cherry");
  g.addEdge("strawberry", "apple");
  g.addEdge("strawberry", "tomato");

  g.addEdge("tomato", "apple");
  g.addEdge("tomato", "kiwi");

  g.addEdge("cherry", "apple");
  g.addEdge("cherry", "kiwi");

  var layouter = new Dracula.Layout.Spring(g);
  layouter.layout();

  var renderer = new Dracula.Renderer.Raphael(document.getElementById('canvas'), g, 400, 300);
  renderer.draw();
</script>