6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ブラウザでリンクをクリック時にPDFを表示とダウンロードを同時にする

Posted at

PDFファイルをタブで開くのとダウンロードするのと同時に実施したいという依頼があったので試してみます。

<a>要素タグに`downloadという属性を付与するとリンク先のドキュメントをダウンロードしてくれます。
MDN アンカー要素 download属性

同時にこの要素をクリック時にwindow.openで新たなウィンドウ(タブ)を開きます。
DOMで要素を取得してonclickで動く関数を設定します。
MDN Window.open()

この2つがどう相互に作用するか実際に試したところ、問題なく動きました。
以下がサンプルコードです。

HTML
<a href="document.pdf" download id="document-link">PDFはこちら</a>
JavaScript
document.getElementById('document-link').onclick = () => {
  window.open('random.pdf', '_blank')
}

Vue3でやるなら以下の形です。

Vue
<template>
  <a href="random.pdf" download @click="openPage()">PDFはこちら</a>
</template>

<script>
export default {
  methods: {
    openPage() {
      window.open('random.pdf', '_blank')
    }
  }
}
</script>

利用ケースはそんなになさそうですが、ユーザーに確実に保存して欲しい時とかは良いかもですね。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?