1回目.toDataURLでcanvasから画像データ取り出すことに成功しましたが
2回目以降
Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
でエラーでてしまうのですがどうにかなりませんか

function hoge(){ /* .toDataURLを取得するまでの処理 */ }
hoge(); // 1回目のhoge()内ならループなどで何度.toDataURLしても取得できる
hoge(); // なぜか2回目からは最初の.toDataURLでエラーでる
みたいな感じです
(クロスドメインの画像です)

あと疑問なのは、クロスドメインが問題ならなぜ最初は取得できたのか・・?というところです