近年、多くのウェブサイトでSNSシェアボタンが導入され、コンテンツの拡散に貢献しています。この記事では、JavaScriptでSNSのシェアボタンを実装する基本方法から、応用テクニックやUX向上の工夫までを解説します。
1. SNSシェアボタンの仕組みとは?
SNSシェアボタンは、ユーザーが閲覧しているページをSNSに投稿・共有できる仕組みです。主に以下のSNSで利用されます。
- X(旧Twitter)
- LINE
- はてなブックマーク
多くのSNSはURLにクエリパラメータを渡すことでシェア投稿を行うため、JavaScriptで簡単に実装可能です。
2. JavaScriptでSNSシェアボタンを実装する方法
2-1. HTML構造
<div class="sns-share"> <button onclick="shareToX()">Xでシェア</button> <button onclick="shareToFacebook()">Facebookでシェア</button> <button onclick="shareToLine()">LINEで送る</button></div>JavaScript2-2. JavaScript関数
function getShareUrl() { return encodeURIComponent(window.location.href);}function getPageTitle() { return encodeURIComponent(document.title);}function shareToX() { const url = `https://twitter.com/intent/tweet?url=${getShareUrl()}&text=${getPageTitle()}`; window.open(url, '_blank', 'width=600,height=400');}function shareToFacebook() { const url = `https://www.facebook.com/sharer/sharer.php?u=${getShareUrl()}`; window.open(url, '_blank', 'width=600,height=400');}function shareToLine() { const url = `https://social-plugins.line.me/lineit/share?url=${getShareUrl()}`; window.open(url, '_blank', 'width=600,height=400');}JavaScript3. 応用テクニック
3-1. 各SNS用にカスタムメッセージを追加する
const xText = encodeURIComponent("この記事おすすめ!");const xUrl = `https://twitter.com/intent/tweet?url=${getShareUrl()}&text=${xText}`;JavaScript3-2. アイコン付きシェアボタンのデザイン(Font Awesome利用)
<!-- CDNをheadに追加 --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" /><button onclick="shareToX()"> <i class="fab fa-x-twitter"></i> シェア</button>HTML3-3. シェア数の表示(外部APIを使用)
Facebookやはてなブックマークでは、API経由でシェア数を取得できます(※現在は制限が多く、使用には注意が必要です)。
4. モバイル対応とUX向上の工夫
- モバイルでは
navigator.share()(Web Share API)を使えばネイティブ共有も可能です。
if (navigator.share) { navigator.share({ title: document.title, url: window.location.href }).then(() => { console.log('共有されました'); }).catch(console.error);}JavaScript- ホバー時にツールチップ表示
- SNSアイコンを色別で統一感を出す
- シェア完了後にメッセージ表示
5. まとめ
SNSシェアボタンは、JavaScriptを使えば自前で軽量に実装できます。基本的なURLの組み立てに加え、UX向上やデザインの工夫を取り入れることで、より多くのユーザーに拡散してもらえる導線を作れます。
チェックリスト
- SNSごとのURL構造を理解する
- JavaScriptで現在のページURLやタイトルを取得する
- Web Share APIやデザイン調整も検討する
おまけ:簡単に使える共通関数(再利用向け)
function openShareWindow(baseUrl, params) { const query = new URLSearchParams(params).toString(); const url = `${baseUrl}?${query}`; window.open(url, '_blank', 'width=600,height=400');}JavaScript