Javascript 画布背景图像未显示在打开的网页上

Javascript 画布背景图像未显示在打开的网页上,javascript,html5-canvas,background-image,Javascript,Html5 Canvas,Background Image,我正在创建一个画布,使用javascript在其中显示验证码。问题是我想给它添加背景,但打开页面时背景不会加载。但是,当我按下刷新按钮时,它工作正常。代码如下: var代码={}; 函数画布(){ var canvas=document.getElementById('canvas'); var ctx=canvas.getContext('2d'); clearRect(0,0,canvas.width,canvas.height); var background=新图像(); backgr

我正在创建一个画布,使用javascript在其中显示验证码。问题是我想给它添加背景,但打开页面时背景不会加载。但是,当我按下刷新按钮时,它工作正常。代码如下:


var代码={};
函数画布(){
var canvas=document.getElementById('canvas');
var ctx=canvas.getContext('2d');
clearRect(0,0,canvas.width,canvas.height);
var background=新图像();
background.src=”http://gazell.io/wp-content/uploads/2016/10/image011.png";
ctx.drawImage(背景,0,0);
“A”、“A”、“B”、“B”、“B”、“C”、“C”、“C”、“C”、“C”、“C”、“C”、“D”、“B”、“C”、“C”、“C”、“C”、“D”、“D”、“D”、“亦,”,”,”,”他们,”亦,”他们,”亦会,”他们,“F”、“F,”,”,”,”F,“F”、“F,”,”他们亦有新阵列的阵列,”新阵列阵列阵列(“、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、‘O’、‘P’、‘Q’、‘R’、‘S’、‘T’、‘U’、‘V’、‘W’、‘X’、‘Y’、‘Z’、‘0’、‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’、‘8’、‘9’;
var i;

对于(i=0;i我认为您的问题在于在加载图像或检索其内容之前尝试设置画布的背景图像

要解决此问题,您需要首先创建图像元素,并在其onload事件上绘制画布

我已经附上了您的工作版本,还请确保脚本是HTML正文中的最后一个元素


测试验证码
刷新
提交
var代码={};
函数画布(){
var createdImage=drawImage();
//等待图像加载,然后绘制画布
createdImage.onload=函数(){
var canvas=document.getElementById('canvas');
var ctx=canvas.getContext('2d');
clearRect(0,0,canvas.width,canvas.height);
ctx.drawImage(createdImage,0,0);
“A”、“A”、“B”、“B”、“B”、“C”、“C”、“C”、“C”、“C”、“C”、“C”、“D”、“B”、“C”、“C”、“C”、“C”、“D”、“D”、“D”、“亦,”,”,”,”他们,”亦,”他们,”亦会,”他们,“F”、“F,”,”,”,”F,“F”、“F,”,”他们亦有新阵列的阵列,”新阵列阵列阵列(“、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、‘O’、‘P’、‘Q’、‘R’、‘S’、‘T’、‘U’、‘V’、‘W’、‘X’、‘Y’、‘Z’、‘0’、‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’、‘8’、‘9’;
var i;

对于(i=0;我在哪里加载了脚本?为什么要同时设置window.onload和body.onload to canvas()?感谢@ElvenStar的快速回复,因为我今天晚上刚刚创建了我的stackoverflow帐户,在第一天收到工作回复感觉非常好。很高兴这有帮助:)