Javascript 为什么我的代码在JSFIDLE上工作,而不是在HTML文件上工作
我正在使用JSFIDLE存储一些坐标。坐标显示在JSFIDLE上,但当我将其复制到本地文件时,坐标不会显示。 我想在我的本地文件上显示那条线的坐标,怎么做 这是我的HTML文件Javascript 为什么我的代码在JSFIDLE上工作,而不是在HTML文件上工作,javascript,jquery,html,jsfiddle,Javascript,Jquery,Html,Jsfiddle,我正在使用JSFIDLE存储一些坐标。坐标显示在JSFIDLE上,但当我将其复制到本地文件时,坐标不会显示。 我想在我的本地文件上显示那条线的坐标,怎么做 这是我的HTML文件 <canvas id="canvas" width="300" height="300" style="border: 1px solid black;"> </canvas> <div id="coord"></div> <div id="coord
<canvas id="canvas" width="300" height="300" style="border: 1px solid black;"> </canvas>
<div id="coord"></div>
<div id="coords"></div>
将其复制到html页面中。问题是你的链接imgCat.src=''; 你放了两个“
一些配置会自动应用于JSFIDLE,您需要手动应用它们
首先,您需要将jQuery添加到您的站点。在
标记之间添加此行:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
或者把它放在标签前面
因此,在输出中,jquery代码如下所示:
<script>
$(function() {
var canvas = document.getElementById('canvas'),
coord = document.getElementById('coord'),
ctx = canvas.getContext('2d'), // get 2D context
imgCat = new Image(),
arr = [];
imgCat.src = ''http://c.wearehugh.com/dih5/openclipart.org_media_files_johnny_automatic_1360.png';
imgCat.onload = function() { // wait for image load
ctx.drawImage(imgCat, 0, 0); // draw imgCat on (0, 0)
};
var mousedown = false;
ctx.strokeStyle = '#0000FF';
ctx.lineWidth = 5;
canvas.onmousedown = function(e) {
arr = [];
var pos = fixPosition(e, canvas);
mousedown = true;
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
return false;
};
canvas.onmousemove = function(e) {
var pos = fixPosition(e, canvas);
coord.innerHTML = '(' + pos.x + ',' + pos.y + ')';
if (mousedown) {
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
arr.push([pos.x, pos.y])
}
};
canvas.onmouseup = function(e) {
mousedown = false;
$('#coords').html(JSON.stringify(arr, null, 2));
};
function fixPosition(e, gCanvasElement) {
var x;
var y;
if (e.pageX || e.pageY) {
x = e.pageX;
y = e.pageY;
}
else {
x = e.clientX + document.body.scrollLeft +
document.documentElement.scrollLeft;
y = e.clientY + document.body.scrollTop +
document.documentElement.scrollTop;
}
x -= gCanvasElement.offsetLeft;
y -= gCanvasElement.offsetTop;
return {x: x, y:y};
}
});
</script>
$(函数(){
var canvas=document.getElementById('canvas'),
coord=document.getElementById('coord'),
ctx=canvas.getContext('2d'),//获取2d上下文
imgCat=新图像(),
arr=[];
imgCat.src=“”http://c.wearehugh.com/dih5/openclipart.org_media_files_johnny_automatic_1360.png';
imgCat.onload=函数(){//等待图像加载
ctx.drawImage(imgCat,0,0);//在(0,0)上绘制imgCat
};
var mousedown=false;
ctx.strokeStyle='#0000FF';
ctx.lineWidth=5;
canvas.onmousedown=函数(e){
arr=[];
var pos=固定位置(e,画布);
mousedown=true;
ctx.beginPath();
ctx.移动到(位置x、位置y);
返回false;
};
canvas.onmousemove=函数(e){
var pos=固定位置(e,画布);
coord.innerHTML='('+pos.x+','+pos.y+');
如果(鼠标向下){
ctx.lineTo(位置x、位置y);
ctx.stroke();
方位推送([位置x,位置y])
}
};
canvas.onmouseup=函数(e){
mousedown=false;
$('#coords').html(JSON.stringify(arr,null,2));
};
功能固定位置(e、GCA元件){
var x;
变量y;
如果(e.pageX | | e.pageY){
x=e.pageX;
y=e.pageY;
}
否则{
x=e.clientX+document.body.scrollLeft+
document.documentElement.scrollLeft;
y=e.clientY+document.body.scrollTop+
document.documentElement.scrollTop;
}
x-=gCanvasElement.offsetLeft;
y-=gCanvasElement.offsetTop;
返回{x:x,y:y};
}
});
1.检查HTML的文档类型:应为HTML(HTML 5)或无文档类型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
}
只需在body标记末尾之前添加脚本,您的问题就会解决。请检查是否需要添加任何依赖文件,如jQuery plugin。询问此问题时,您是否查看了所有副本。它们仍然可以在此页面的右侧看到。问题是DOM就绪事件等。请检查JSFIDLE its 1.6中的jQuery插件版本。2还要检查html内容类型是否支持画布标记欢迎使用堆栈溢出!查看并告诉您在那里看到的错误以及它们指向的行。请您为我解释imgCat.src的错误,因为我尝试复制此代码,但无效。您提供的链接无效。尝试使用其他类似的链接,您应该将文件保存在本地,以避免此类问题,或确保链接始终可用。我刚更改了链接,我仍然无法看到JSFIDDLE中的坐标,您在哪个浏览器中打开html文件。我打开它与铬和它的工作。在IE中,确保浏览器不会阻止js。这是一个安全参数那么我是否丢失了jquery文件?o
$(function() {
// You script here
});
<script>
$(function() {
var canvas = document.getElementById('canvas'),
coord = document.getElementById('coord'),
ctx = canvas.getContext('2d'), // get 2D context
imgCat = new Image(),
arr = [];
imgCat.src = ''http://c.wearehugh.com/dih5/openclipart.org_media_files_johnny_automatic_1360.png';
imgCat.onload = function() { // wait for image load
ctx.drawImage(imgCat, 0, 0); // draw imgCat on (0, 0)
};
var mousedown = false;
ctx.strokeStyle = '#0000FF';
ctx.lineWidth = 5;
canvas.onmousedown = function(e) {
arr = [];
var pos = fixPosition(e, canvas);
mousedown = true;
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
return false;
};
canvas.onmousemove = function(e) {
var pos = fixPosition(e, canvas);
coord.innerHTML = '(' + pos.x + ',' + pos.y + ')';
if (mousedown) {
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
arr.push([pos.x, pos.y])
}
};
canvas.onmouseup = function(e) {
mousedown = false;
$('#coords').html(JSON.stringify(arr, null, 2));
};
function fixPosition(e, gCanvasElement) {
var x;
var y;
if (e.pageX || e.pageY) {
x = e.pageX;
y = e.pageY;
}
else {
x = e.clientX + document.body.scrollLeft +
document.documentElement.scrollLeft;
y = e.clientY + document.body.scrollTop +
document.documentElement.scrollTop;
}
x -= gCanvasElement.offsetLeft;
y -= gCanvasElement.offsetTop;
return {x: x, y:y};
}
});
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
$(document).ready(function () {
DrawImage();
});
function DrawImage()
{
//your code here
var canvas = document.getElementById('canvas'),
coord = document.getElementById('coord'),
ctx = canvas.getContext('2d'), // get 2D context
imgCat = new Image(),
arr = [];
/*********** draw image *************/
imgCat.src = 'http://c.wearehugh.com/dih5/openclipart.org_media_files_johnny_automatic_1360.png';
imgCat.onload = function() { // wait for image load
ctx.drawImage(imgCat, 0, 0); // draw imgCat on (0, 0)
};
/*********** handle mouse events on canvas **************/
var mousedown = false;
ctx.strokeStyle = '#0000FF';
ctx.lineWidth = 5;
canvas.onmousedown = function(e) {
arr = [];
var pos = fixPosition(e, canvas);
mousedown = true;
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
return false;
};
canvas.onmousemove = function(e) {
var pos = fixPosition(e, canvas);
coord.innerHTML = '(' + pos.x + ',' + pos.y + ')';
if (mousedown) {
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
arr.push([pos.x, pos.y])
}
};
canvas.onmouseup = function(e) {
mousedown = false;
$('#coords').html(JSON.stringify(arr, null, 2));
};
//Utils
function fixPosition(e, gCanvasElement) {
//put codes of this function here.
}