我目前正在设计HTML5 Canvas应用程序并使用Image Uploader,以便用户可以将本地图像上传到服务器,然后在画布上修改图像(因为对外部源的一些操作会给你一个安全例外)
我有一些JS包含这样的内容:
<script type="text/javscript">
var editImage = new Image; // Global scope; not in a function
function setupCanvas() {}
</script>
图像成功加载后,我回复如下:
echo '
<script type="text/javascript">
alert("'.$upload_image.'");
window.editImage=new Image();
window.editImage.src=\''.$upload_image.'\';
alert(window.editImage.src);
setupCanvas();
</script>'
现在我从alert()语句得到的输出是$ upload_image。但是当我检查FireBug时,它会说我在单独的脚本中声明了GLOBALLY的editImage var仍然是ORIGINAL图像源,而不是$ upload_image。此外,它会说我调用的setupCanvas()方法将是UNDEFINED,尽管它在GLOBAL范围内。
我假设当我使用PHP执行此操作时必定会出现一些范围问题 - 有没有办法解决这个问题?
答案 0 :(得分:1)
对不起评论中的代码块是不可读的,这就是我使用JUST javascript的方式:
$(document).ready(function() {
editImage=new Image();
editImage.src='http://graffpic/uploads/fracture_1292689775.jpg';
console.log(editImage.src);
setupCanvas();
});
唯一的问题是当我用PHP输出它时会说$ is UNDEFINED - 所以这很可能是一个加载问题 - 任何人都可以给我更详细的信息和做什么?我可以导入jQuery库AGAIN,但这看起来很笨拙;或者我可以导入$(document).ready()所需的代码片段,这又是非常笨重的。有什么帮助吗?
答案 1 :(得分:0)
啊!我希望这也是你的问题。不仅仅是你帖子中的拼写错误,因为我已经根据你的例子用一些代码扯了我很久。这不仅仅是您的第一个代码块读取,
<script type="text/javscript">
不
<script type="text/javascript">
是吗? (注意第一行'javascript'中缺少'a'。)