1. ホーム
  2. ジャバスクリプト

[解決済み】汚染されたキャンバスがエクスポートされない場合があります。

2022-04-19 05:11:13

質問

キャンバスを img . このような関数があります。

function save() {
    document.getElementById("canvasimg").style.border = "2px solid";
    var dataURL = canvas.toDataURL();
    document.getElementById("canvasimg").src = dataURL;
    document.getElementById("canvasimg").style.display = "inline";
}

エラーになります。

<ブロッククオート

Uncaught SecurityError: HTMLCanvasElement' で 'toDataURL' の実行に失敗しました。汚染されたキャンバスはエクスポートされない可能性があります。

どうすればいいのでしょうか?

どのように解決するのですか?

セキュリティ上の理由から、ローカルドライブは "other-domain" として宣言されており、キャンバスを汚染します。

(それは、あなたの最も重要な情報がローカルドライブにある可能性が高いからです!).

テスト中は、以下の回避策をお試しください。

  • すべてのページ関連ファイル(.html, .jpg, .js, .css, etc)をデスクトップに置く(サブフォルダには置かない)。

  • 画像をクロスドメイン共有に対応したサイト(dropbox.comやGitHubなど)に投稿してください。 画像は必ずdropboxのpublicフォルダに置き、画像をダウンロードする際にはcross originフラグも設定してください( var img=new Image(); img.crossOrigin="anonymous" ...)

  • 開発用コンピューターにウェブサーバーをインストールします(IISとPHPのウェブサーバーには、ローカルコンピューターでうまく動作する無料版があります)。