1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【エラー】canvasでSecurityError: The operation is insecure が出て困った

Posted at

状況

Webでcanvasを使った開発をしている際にエラーに遭遇(iOS13 safari)
※しかし何故かPC ChromeやiOS14ではエラーが出ず正常に動作。

エラー内容

SecurityError: The operation is insecure

このようなエラーがcanvas.toDataURL();の部分に出ていました。
このcanvas書き出し前に、srcが外部ページの静止画をdrawImageしていたのでどうやらここのCORSが原因ぽい。

試して失敗したこと

canvasにdrawImageしている画像は、JS側でnew Image();で生成していたので
同じようにJS側で以下のようにcrossOriginを設定しました。

script.js
img.crossOrigin = "Anonymous";

これでPC Chrome、iOS14などではエラーがなくなりましたが
iOS13ではエラーが出現。。。

成功したこと

JSで生成していた画像をそもそもhtml側で用意して置いとくことにしたらエラーが消えました。

index.html
<img crossOrigin="Anonymous" id="canvas-img" class="canvas-img" src="">
style.css
.canvas-img {
  display: none;
}
script.js
canvasImg = document.getElementById("canvas-img");
context.drawImage(canvasImg, x, y, w, h);
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?