JavaScriptでGoogleゲージチャートを生成し、その後生成されたチャートの画像を生成しようとしていました。しかし、どういうわけか、チャートなしで画像が生成されます。私はjsに非常に慣れていないため、どこが間違っているのか理解できません。誰か助けてください。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>Using an existing canvas to draw on</title>
<style>
canvas {
border: 1px solid black;
}
button {
clear: both;
display: block;
}
#content {
background: rgba(100, 255, 255, 0.5);
padding: 50px 10px;
}
</style>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
<script type="text/javascript">
google.charts.load('current', {'packages':['gauge']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Extroversion', 80],
['Agreeableness', 55],
['Conscientiousness', 68],
['Neuroticism',78],
['Openness',85]
]);
var options = {
width: 800, height: 500,
greenColor:'#30D5C8',
greenFrom:60, greenTo:70,
blueColor: '#3bb0cb',
blueFrom: 70, greenTo:80,
redColor : '#478ace',
redFrom : 80, redTo: 90,
yellowColor : '#5264d0',
yellowFrom:90, yellowTo: 100,
minorTicks: 5
};
var chart = new google.visualization.Gauge(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div><h1>HTML content to render:</h1>
<div id="content"><div id="chart_div"></div></div>
</div>
<h1>Existing canvas:</h1>
<script type="text/javascript" src="html2canvas.js"></script>
<button>Run html2canvas</button>
<canvas width="900" height="900" style="display:none;"></canvas>
<script >
var canvas = document.querySelector("canvas");
var ctx = canvas.getContext("2d");
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle
ctx.moveTo(110,75);
ctx.arc(75,75,35,0,Math.PI,false); // Mouth (clockwise)
ctx.moveTo(65,65);
ctx.arc(60,65,5,0,Math.PI*2,true); // Left eye
ctx.moveTo(95,65);
ctx.arc(90,65,5,0,Math.PI*2,true); // Right eye
ctx.stroke();
document.addEventListener("DOMContentLoaded", function() {
html2canvas(document.body, {canvas: canvas, scale: 1}).then(function(canvas) {
console.log('Drew on the existing canvas');
// canvasΪת�����Canvas����
let oImg = new Image();
oImg.src = canvas.toDataURL(); // ����ͼƬ
console.log(oImg.src);
$.ajax({
url: "script.php",
type: "POST",
data: {
image: oImg.src
},
dataType: "html",
success: function() {
alert('Success!!');
location.reload();
}
});
document.body.appendChild(oImg); // �����ɵ�ͼƬ���ӵ�body
});
}, false);
</script>
</body>
</html>
私も遅延を設定しようとしましたが、それもうまくいきませんでした