2013-10-24 30 views
0

JS的新手。不知道爲什麼我在Chrome中加載此錯誤時遇到了以下錯誤。 vivagraph.js文件與html位於同一目錄中。Uncaught ReferenceError:Viva沒有定義

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

回答

0

如果vivagraph.js是在同一目錄中的HTML,那麼你可以只使用src="jsFilename"代替src="./jsFilename"

要刪除的錯誤,使用jQuery的$(document).ready()

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

或速記一個:

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

-1沒有解決OP問題。加載腳本可能不是404(除非燙髮設置不正確,在這種情況下,這個建議也無濟於事)。 – PaulProgrammer

+0

@PaulProgrammer見編輯 – Coder

0

在viva腳本完成解析之前,正在執行main()。您需要將main()並非body onload,而是document.ready

很多框架像jQuery管理的細節,但你可以通過只把調用主要在封閉靠近頁面底部近似相同的:

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

打開調試控制檯在Chrome和檢查錯誤

替代方案:

  1. 無法打開文件(如果在同一個目錄,你可以只使用「vivagraph.js」)
  2. 文件打開與語法錯誤
  3. 打開文件確定,但不同的版本並沒有定義全局對象萬歲
相關問題