1. ホーム
  2. javascript

[解決済み] なぜcanvas.toDataURL()はセキュリティ例外を投げるのですか?

2023-03-06 06:57:37

質問

寝不足なのでしょうか?この次のコード

var frame=document.getElementById("viewer");
frame.width=100;
frame.height=100;

var ctx=frame.getContext("2d");
var img=new Image();
img.src="http://www.ansearch.com/images/interface/item/small/image.png"

img.onload=function() {
    // draw image
    ctx.drawImage(img, 0, 0)

    // Here's where the error happens:
    window.open(frame.toDataURL("image/png"));
}

がこのエラーを投げています。

SECURITY_ERR: DOM Exception 18

これが動かないはずはないのです! 誰か説明してください。

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

スペック と書いてある。

の toDataURL() メソッドが実行されるたびに、そのメソッドが実行されます。 メソッドが呼び出されると、そのメソッドは が false に設定されている canvas 要素の toDataURL() メソッドが呼び出されると、そのメソッドは メソッドは SECURITY_ERR 例外を発生させなければなりません。

画像が他のサーバーから来る場合、toDataURL()は使えないと思います。