未捕获的ReferenceError:未定义Viva

时间:2013-10-24 19:30:47

标签: javascript vivagraphjs

JS新手。我不知道为什么我在Chrome中加载时出现以下错误。 vivagraph.js文件与html位于同一目录中。

<!DOCTYPE html>
<html>
<head>
    <title>01. Create Graph. Vivagraph SVG tutorial.</title>
    <script type="text/javascript" src="./vivagraph.js"></script>
    <script type="text/javascript">
        function main () {
            // Step 1. We create a graph object.
            var graph = Viva.Graph.graph();

            // Step 2. We add nodes and edges to the graph:
            graph.addLink(1, 2);

            /* Note: graph.addLink() creates new nodes if they are not yet 
               present in the graph. Thus calling this method is equivalent to:

               graph.addNode(1);
               graph.addNode(2);
               graph.addLink(1, 2);
            */

            // Step 3. Render the graph.
            var renderer = Viva.Graph.View.renderer(graph);
            renderer.run();
        }
    </script>

    <style type="text/css" media="screen">
        html, body, svg { width: 100%; height: 100%;}
    </style>
</head>
<body onload='main()'>

</body>
</html>

3 个答案:

答案 0 :(得分:0)

如果vivagraph.js与html位于同一目录中,那么您可以使用src="jsFilename"代替src="./jsFilename"

要删除错误,请使用jQuery的 $(document).ready()

$(document).ready(function() {
    ...
});

或速记一:

$(function() {
    ...
});

答案 1 :(得分:0)

在viva脚本完成解析之前,main()正在执行。您需要将main()body onload绑定,而不是document.ready

许多框架如jQuery管理细节,但您可以通过在页面底部附近的闭包中调用main来近似相同:

</html>
<script type="text/javascript">var foo=(function() {main();})();</script>

答案 2 :(得分:0)

在Chrome中打开调试控制台并检查错误

替代方案:

  1. 无法打开文件(如果在同一个目录上你可以使用“vivagraph.js”)
  2. 文件打开时出现语法错误
  3. 文件打开正常但不同版本未定义全局对象Viva