我正在尝试将raphael.js(已下载并在本地运行)加载到HTML文件中,但脚本拒绝退出,在我的JS控制台中出错:
Uncaught TypeError:
Cannot call method 'appendChild' of null
bV on raphael.js:7
a on raphael.js:7
(anonymous function) on raphael.html:22
这是针对缩小版本,第1789行的非最小版本也会出现相同的错误。
我从网站上下载了代码,尝试了压缩和未压缩,以及下载其中一个演示中链接的JS文件,所有这些都可以在我的浏览器中工作(chrome)。
有什么想法吗?
答案 0 :(得分:28)
我遇到了同样的问题,结果却是一个加载订单问题。这是原始代码:
<!doctype html>
<html>
<head>
<script src='raphael-1.5.2.js'></script>
<script>
var paper = Raphael(10, 50, 300, 250);
var circle = paper.circle(50, 40, 10);
circle.attr('fill', '#c00');
circle.attr('stroke', '#fff');
</script>
</head>
<body></body>
</html>
事实证明,当调用Raphael(10, 50, 300, 250)
时,它会尝试将一个canvas元素附加到正文......但它尚不存在。因此将它包装在window.onload
或jQuery onload函数中可以解决问题:
<!doctype html>
<html>
<head>
<script src='raphael-1.5.2.js'></script>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js'></script>
<script>
$(function () {
var paper = Raphael(10, 50, 300, 250);
var circle = paper.circle(50, 40, 10);
circle.attr('fill', '#c00');
circle.attr('stroke', '#fff');
});
</script>
</head>
<body></body>
</html>