<script type="text/javascript" src="raphael.js"></script>
<script>
var paper = new Raphael("holder", 320, 200);
function testPaper(){
var width10 = paper.width * 0.1;
var height10 = paper.height * 0.1;
var width80 = paper.width * 0.8;
var height80 = paper.height * 0.8
var c = paper.rect( width10, height10, width80, height80, Math.min( width10, height10 ) );
}
</script>
</head>
<body onload = "testPaper()">
<div id="holder"></div>
</body>
上述代码有什么问题?我一直试图让Raphael工作超过一个小时了它总是抱怨:
未捕获的TypeError:无法读取未定义的raphael.js属性'x':11
答案 0 :(得分:4)
使用Raphael的脚本可能在&#34; holder&#34;之前运行。元素已创建。
要么在ready/onload事件中创建Raphael,要么像这样简单地排列HTML:
<body>
<div id="holder"></div> <!-- also use correct closing tag -->
<script src="raphael.js"></script>
<script>
var paper = new Raphael("holder", 320, 200);
// ..
</script>
</body>
答案 1 :(得分:0)
我在Angular中使用draw2d库时遇到了同样的问题。我无法初始化画布。值得注意的是,该元素必须与已初始化的画布具有相同的名称。