JavaScriptでdownload属性が付与されている画像を一括ダウンロードさせる方法
ページ内にdownload属性が付与されている画像が複数あり、何らかのボタンをクリック時に全ての画像をまとめてダウンロードさせたい。PHPが利用可能な環境であればZIPファイル化の上、ダウンロードさせる形を取るがASPを利用したサイトのためPHPが利用不可だった。そのためJavaScriptでの対応方法を以下にメモ。
サンプル
https://taitan916.info/sample/js_download/
画像をクリックすると個別にダウンロード、「一括ダウンロード」ボタンをクリックすると全画像がダウンロードできる筈。
ソースコード
<div> <a href="001.jpg" class="img" download> <img src="001.jpg"> </a> <a href="002.jpg" class="img" download> <img src="002.jpg"> </a> <a href="003.jpg" class="img" download> <img src="003.jpg"> </a> </div> <button id="download">一括ダウンロード</button> <script> document.querySelector('#download').addEventListener('click', function() { document.querySelectorAll('.img').forEach(function(e){ e.click(); }); }); </script>
所感
e.click()部分はjQueryのclickイベントだと動かなかったため、実装の際はバニラJSで対応すること。
関連記事
-
-
jQueryの「DateTimePicker」プラグインで日付や時間選択時に指定したイベントを実行させる方法
jQueryの「DateTimePicker」プラグインで日付や時間選択時、あら ...
-
-
JavaScript / jQueryで〇番目、最初、最後の要素を指定する方法
jQueryでリストタグ(<li>)の〇番目、最初、最後の要素を指定 ...
-
-
leaflet.jsとOSMでマップ表示及びマーカー設置方法
GoogleMapAPIを用いたマップ及びマーカー表示にクレジットカード登録が必 ...
-
-
ajaxのエラー詳細を取得する
success or errorで分岐処理はできるけど、 エラー詳細取れないの? ...
-
-
JavaScriptで全角半角を判別の上で文字数カウントを行う
やりたかった事は「全角5文字・半角10文字以内の入力フォーム」 みたいなもの。 ...