서버에 넣지 않고 PC의 일부에서 실행하면 완벽하게 작동하지만 서버에 놓으면 호출한다는 코드가 있습니다.서버에 올려 놓았을 때 JavaScript가 작동하지 않음
catch되지 않은 ReferenceError가 : crearLienzo가에서 온로드 을 정의되지 않은 ((인덱스) : 81)
이런 일이 발생하는 이유 이해가 안가, 그것은 나에게 다음과 같은 오류를 제공합니다. 다들 감사 해요!
<html>
<head>
<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
<script type="text/javascript" >
var movimientos = new Array();
var pulsado;
function crearLienzo() {
var canvasDiv = document.getElementById('lienzo');
canvas = document.createElement('canvas');
canvas.setAttribute('width', 200);
canvas.setAttribute('height', 200);
canvas.setAttribute('id', 'canvas');
canvasDiv.appendChild(canvas);
if(typeof G_vmlCanvasManager != 'undefined') {
canvas = G_vmlCanvasManager.initElement(canvas);
}
context = canvas.getContext("2d");
$('#canvas').mousedown(function(e){
pulsado = true;
movimientos.push([e.pageX - this.offsetLeft,
e.pageY - this.offsetTop,
false]);
repinta();
});
$('#canvas').mousemove(function(e){
if(pulsado){
movimientos.push([e.pageX - this.offsetLeft,
e.pageY - this.offsetTop,
true]);
repinta();
}
});
$('#canvas').mouseup(function(e){
pulsado = false;
});
$('#canvas').mouseleave(function(e){
pulsado = false;
});
repinta();
}
function repinta() {
// función para dibujar en el lienzo los movimientos del ratón que hemos
// recogido en la variable "movimientos"
canvas.width = canvas.width; // Limpia el lienzo
context.strokeStyle = "#0000a0";
context.lineJoin = "round";
context.lineWidth = 6;
for(var i=0; i < movimientos.length; i++)
{
context.beginPath();
if(movimientos[i][2] && i){
context.moveTo(movimientos[i-1][0], movimientos[i-1][1]);
}else{
context.moveTo(movimientos[i][0], movimientos[i][1]);
}
context.lineTo(movimientos[i][0], movimientos[i][1]);
context.closePath();
context.stroke();
}
}
function convertCanvasToImage(canvas) {
var image = new Image();
image.src = canvas[0].toDataURL("image/png");
alert(image);
return image;
}
</script>
</head>
<body style="background: #eee;" onload="crearLienzo()">
<div id="lienzo" style="width: 200px; height: 200px; background: #fff;"></div>
<button type="button" onclick="convertCanvasToImage($('#canvas'));">aa</button>
</body>
</html>
어떤 브라우저를 사용하십니까? 어떤 서버? 서버 리소스를 참조하기 때문에 webapp에 jquery가 포함되어 있습니까? 코드에 오타가 있습니다 (예 :'getElemenatById'). 정말 효과가 있습니까? jQuery를 사용하는 경우 맨손으로 DOM 조작 함수 (getElementById)를 사용하는 이유는 무엇입니까? 왜 jsfiddle과 같은 웹 기반 도구에서 직접 빌드하지 않는 것입니까? (코드에서 다른 오류가 하나 나타납니다)? – andy