Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测SVG区域任意位置的颜色_Javascript_Svg - Fatal编程技术网

Javascript 如何检测SVG区域任意位置的颜色

Javascript 如何检测SVG区域任意位置的颜色,javascript,svg,Javascript,Svg,在SVG区域(不是画布)中,我需要使用javascript确定特定坐标(x,y)位置的颜色。总的来说是这样的: getColor (mySvgArea, x, y); 通常情况下,在html中,如果链接被访问过,则会以不同的颜色绘制。当然,在SVG中也可能出现这种情况,而且很早以前就意识到,如果你能弄清楚颜色是什么,那就是一个隐私泄露,为此付出了很多努力 如果你被允许在一个总坐标上阅读颜色,它将重新打开隐私漏洞,因此你永远不会有办法在图像之外阅读 图像方式是将SVG放在标记中,然后将其加载到画

在SVG区域(不是画布)中,我需要使用javascript确定特定坐标(x,y)位置的颜色。总的来说是这样的:

getColor (mySvgArea, x, y);

通常情况下,在html中,如果链接被访问过,则会以不同的颜色绘制。当然,在SVG中也可能出现这种情况,而且很早以前就意识到,如果你能弄清楚颜色是什么,那就是一个隐私泄露,为此付出了很多努力

如果你被允许在一个总坐标上阅读颜色,它将重新打开隐私漏洞,因此你永远不会有办法在图像之外阅读

图像方式是将SVG放在
标记中,然后将其加载到画布中。浏览器可以通过以下两种方式防止隐私泄露:a)污染画布,以便在SVG数据加载到画布(当前为Webkit)后无法读取;b)限制SVG图像功能,以便通过禁用链接着色(Firefox)等功能防止隐私泄露


已经有一个stackoverflow的答案,示例如下。如果您使用Firefox,则可以阅读颜色。

非常有趣。谢谢你指出原因。为了使SVG更强大,他们应该从规范中删除链接(很少使用)。SVG需要对渲染的图形进行更细粒度的控制。事实上,我在这方面的研究是为了能够确定任何给定形状的边界。一种交叉点扫描(因为getIntersectionList还没有得到很好的支持)。