このチュートリアルに従いました: http://www.youtube.com/watch?v=qUjQrThw-ss
xampp を使用してテストします。
問題は、ウィンドウがそこにポップアップしないことです。
これは私のコードです:
HTML:
<!doctype html>
<html>
<head>
<title>Html5 Drawing App!</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body style='margin: 0'>
<div id="toolbar">
<div id="rad">
Radius <span id="radval">10</span>
<div id="decRad" class="radcontrol">-</div>
<div id="incRad" class="radcontrol">+</div>
</div>
<div id="colors">
</div>
<div id="save">
Save
</div>
</div>
<canvas id="canvas" style="display: block;">
Sorry, Your Browser Is Unsupported. Switch To Another Browser
</canvas>
<script src="main.js"></script>
<script src="radius.js"></script>
<script src="colors.js"></script>
<script src="save.js"></script>
</body>
</html>
保存.js:
var saveButton = document.getElementById('save');
saveButton.addEventListener('click', saveImage);
function saveImage(){
var data = canvas.toDataURL();
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(request.readyState == 4 && request.status = 200){
//do our stuff
var response = request.responseText;
window.open(response, '_blank', 'location=0, menubar=0');
}
}
request.open('POST', 'save.php', true);
request.setRequestHeader('Content-type', 'application/x-ww-form-urlencoded');
request.send('img='+data);
//window.open(data, '_blank', 'location=0, menubar=0');
}
保存.php:
<?php
$data = $_POST_['img'];
$data = str_replace('data:image/png;base64', '', $data);
$data = str_replace(' ', '+', $data);
$img = base64_decode($data);
$path = 'images/' . uniqid() . '.png';
if(file_put_contents($path, $img)){
print $path;
}else{
header("HTTP/1.1 500 Internal Server Error");
}
?>
なぜポップアップしないのですか?Google Chromes 開発者ツールを使用すると、次のエラーが表示されます。
Uncaught ReferenceError: Invalid left-hand side in assignment save.js:11
POST http://localhost/draw/save.php 500 (Internal Server Error) save.js:20
3
Uncaught ReferenceError: Invalid left-hand side in assignment
これを修正するのを手伝ってください。ありがとう