a
タグの download
属性を使うと、HTMLだけでファイルのダウンロードリンクを作れます。
href
属性にはダウンロード対象のファイルURLを、download
属性にはダウンロード時のファイル名を指定します。
JavaScriptでファイルダウンロード処理を実現する - Qiita
これと canvas
の toDataURL
メソッドを組み合わせると、canvas
の内容を画像でダウンロードするリンクを作れます。ダウンロードリンクを押したときに canvas
の内容を toDataURL
でData URIに変換して、href
に設定するだけです。
以下にサンプルを置いておきます。
See the Pen
Untitled by napoporitataso (@napoporitataso)
on CodePen.
[2021-03-21 追記] 3/8に上書き保存ができるか否かについてコメントをいただきました。自分の知る範囲内では上書き保存はできないので、同名でダウンロードさせることになり、ダウンロード後のファイル名にはどうしても (1) とかが付きます。いわゆる「名前をつけて保存」ダイアログすらJSからは出す方法が見つからないので、ファイル保存に関してはあんまり自由度高くないみたいです。