每当我运行此代码时,都会出现以下错误。 未捕获的 SecurityError:无法在“CanvasRenderingContext2D”上执行“getImageData”: Canvas 已被跨源数据污染。 我也在尝试这个语句 img.crossorigin= "anonymous"但没有得到正确的输出,如果有人知道然后帮助我。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="stylesheets/chromagallery.css">
<style type="text/css">
body,html{height: 100%;}
.content
{
width: 100%;
height: 100%;
margin: 10px auto;
}
.chroma-gallery-logo
{
width: 300px;
height: 124px;
background: url(images/chromagallery_logo.png) no-repeat;
margin: 25px auto;
}
.mygallery{margin: 25px 0;}
@media screen and (max-width: 400px) /* small logo */
{
.chroma-gallery-logo
{
width: 200px;
height: 83px;
background-size:200px 83px;
}
}
@media screen and (min-width: 980px) /* Desktop */
{
.content {width: 60%;}
}
</style>
<title>Chroma Gallery</title>
</head>
<body>
<div class="chroma-gallery-logo"></div>
<div class="content">
<div class="chroma-gallery mygallery">
<img src="images/thumbs/1.jpg" alt="Pic 1" data-largesrc="images/1.jpg">
<img src="images/thumbs/2.jpg" alt="Pic 2" data-largesrc="images/2.jpg">
<img src="images/thumbs/3.jpg" alt="Pic 3" data-largesrc="images/3.jpg">
<img src="images/thumbs/4.jpg" alt="Pic 4" data-largesrc="images/4.jpg">
<img src="images/thumbs/5.jpg" alt="Pic 5" data-largesrc="images/5.jpg">
<img src="images/thumbs/6.jpg" alt="Pic 6" data-largesrc="images/6.jpg">
<img src="images/thumbs/7.jpg" alt="Pic 7" data-largesrc="images/7.jpg">
<img src="images/thumbs/8.jpg" alt="Pic 8" data-largesrc="images/8.jpg">
<img src="images/thumbs/9.jpg" alt="Pic 9" data-largesrc="images/9.jpg">
<img src="images/thumbs/10.jpg" alt="Pic 10" data-largesrc="images/10.jpg">
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="scripts/modernizr-chrg.min.js"></script>
<script src="scripts/masonry.min.js"></script>
<script src="scripts/chromagallery.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(".mygallery").chromaGallery();
});
</script>
</body>
</html>
最佳答案
您的浏览器可能会阻止本地内容的 imageData。这似乎是基于“图像/..”网址。您可以做两件事。
尝试使用不同的浏览器。 Firefox 在本地数据方面的政策与 Safari/Chrome 不同。在 Firefox 中查看您的页面,看看是否存在差异。
通过 Internet 连接提供您的页面以使浏览器启动不同的策略。如果你有 python 打开命令行并转到元素的文件夹。运行
<python -m SimpleHTTPServer 8080
并打开浏览器访问http://127.0.0.1:8080/yourpage.html
查看是否有效。
浏览器不喜欢来自不同地方的代码访问图像数据。您要么需要让浏览器相信代码来自同一个地方,要么让服务器发送允许跨源的特殊 header 。
关于javascript - 未捕获的安全错误 : Failed to execute 'getImageData' on 'CanvasRenderingContext2D' :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34264620/