Javascript 使用Jquery拾取鼠标单击点的颜色十六进制代码

Javascript 使用Jquery拾取鼠标单击点的颜色十六进制代码,javascript,jquery,canvas,Javascript,Jquery,Canvas,我有一个要求,以获得颜色十六进制代码的任何一点,在我的应用程序当前页面上点击鼠标。我在网上搜索,发现了一篇帖子 我试着在文章中使用参考链接 但我甚至无法在剪辑时获得返回的rgb值。始终返回的rgb值是 {r: 0, g: 0, b: 0, a: 0} 我的代码如下 JS代码 var canvas = $("<canvas>"); //Create the canvas element //Create a layer which overlaps the whole wind

我有一个要求,以获得颜色十六进制代码的任何一点,在我的应用程序当前页面上点击鼠标。我在网上搜索,发现了一篇帖子

我试着在文章中使用参考链接

但我甚至无法在剪辑时获得返回的rgb值。始终返回的rgb值是

{r: 0, g: 0, b: 0, a: 0}
我的代码如下

JS代码

var canvas = $("<canvas>"); //Create the canvas element

//Create a layer which overlaps the whole window
canvas.css({position:"fixed", top:"0", left:"0",
            width:"100%", height:"100%", "z-index":9001});

canvas.click(function(ev){
 var x = ev.pageX;
 var y = ev.pageY;
 console.log(x);
 console.log(getpixelcolour(this, x, y));
});
canvas.appendTo("body:first"); 

function getpixelcolour(canvas, x, y) {
  var cx = canvas.getContext('2d');
  var pixel = cx.getImageData(x, y, 1, 1);  
  return {
    r: pixel.data[0],
    g: pixel.data[1],
    b: pixel.data[2],
    a: pixel.data[3]
  };
}
var canvas=$(“”)//创建画布元素
//创建一个与整个窗口重叠的层
css({位置:“固定”,顶部:“0”,左侧:“0”,
宽度:“100%”,高度:“100%”,z指数:“9001});
画布。单击(功能(ev){
var x=ev.pageX;
var y=ev.pageY;
控制台日志(x);
log(getpixelcolour(this,x,y));
});
画布。附录(“正文:第一”);
函数GetPixelColor(画布、x、y){
var cx=canvas.getContext('2d');
var pixel=cx.getImageData(x,y,1,1);
返回{
r:pixel.data[0],
g:像素数据[1],
b:像素数据[2],
答:像素数据[3]
};
}
HTML代码

<htmL>
<body style="background-color:yellow">
<div style="background-color:red">
Red
</div>
<div style="background-color:green">
green
</div>
<div style="background-color:blue">
blue
</div>
</body>
</htmL>

红色
绿色
蓝色
我的努力也放在了JS的Fiddle链接上


有人能告诉我我做错了什么。

你应该在问题中发布代码(不要使用链接)。@JeroenHeier编辑了JS和HTML代码的问题。值得一提的是,你忘了在示例中的函数中包含
canvas.drawWindow
drawWindow
是一种仅适用于firefox的javascript方法