2011-04-03 90 views
0

我有一个CodeIgniter应用程序,允许企业在线完成某些报告。报告的一部分是他们可以在车辆上发现损坏发生的位置。我通过画一张画布来实现这一点。奇怪的画布绘制行为

的问题是,有一些非常奇怪的行为,当它涉及到绘制背景图片(车)上,他们借鉴他们的箭头显示的影响等等

这里的Java脚本(如部分脚本作为整体):

var img = new Image(); 
    img.src = "/intranet/images/car.png"; 


    context.drawImage(img, 10, 5, img.width, img.height); 

这是一个名为vehicle_canvas.js的脚本的全部内容。现在,这是奇怪的行为来自何处。该脚本调用

<script type="text/javascript" src="/intranet/js/vehicle_canvas.js"></script>

在位于/intranet/application/views/view_instruction.php

脚本只是没有绘制车辆图像视图文件,但被其他人做正确的一切,然后突然它工作,原因是我意外地将vehicle_canvas.js上传到不同的文件夹/ intranet/pdfs /而不是/ intranet/js /。现在,如果我从/ pdfs /删除脚本,它将无法正常工作。/pdfs /无法在我的任何视图文件或Javascript调用中发生。

任何想法?

下面是引用文档树:

/intranet/ 
    /pdfs/ 
    /js/ 
     /application/ 
      /views/ 
       view_instruction.php 
+0

谷歌浏览器的分析甚至显示JS文件从/js/vehicle_canvas.js被称为即使文件也在/ PDF文件/所以它的工作原理。 – Dormouse 2011-04-03 10:15:22

回答

1

我想你可能需要剥离的东西回到最简单的形式 - 或许还有缓存,所以一定要确保你做一个全面刷新,等...

至于图像的古怪:也许是因为图像在您尝试将其绘制到画布元素之前尚未完全加载。你应该等待页面加载(或更好的,图像加载),否则它会失败。喜欢的东西:

var img = new Image(); 
img.onload = function(){ 
    context.drawImage(img, 10, 5, img.width, img.height); 
} 
img.src = "/intranet/images/car.png"; 
+0

+1点上。或者,如果您要加载多个图像,请设置一个'window.onload'(或'window.addEventListener('load',function(){...},false)'),它可以关闭它,并设置'。 src'之后的所有图像。 – Phrogz 2011-04-03 13:56:11