入力で画像が選択されたときに画像のプレビューを表示するhtmlキャンバスがあります。これはChromeでも動作しますが、Safariで動作させることはできません。具体的には、Safariではonchange="previewFile()"
はpreviewFile関数を呼び出すようには見えません。サファリでonchange javascript関数の呼び出しが機能しない
<canvas id="canvas" width="0" height="0"></canvas>
<h2>Upload a photo </h2>
<input type="file" onchange="previewFile()"><br>
<script type="text/javascript">
// setup the canvas
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
// grab the photo and display in canvas
var photo = new Image();
function previewFile() {
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.addEventListener("load", function() {
photo.src = reader.result;
canvas.height = photo.height;
canvas.width = photo.width;
ctx.drawImage(photo,0,0);
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
</script>
ありがとうございました!それは問題を解決し、あなたは私に何かを教えました! – rcrusoe