シェアボタンをカスタマイズして設置することがよくあるので、URLを生成してから埋め込むまでの処理を作成してみます。
サンプルコード
今回はTwitter,Facebook,LINEの3つのシェアボタンを試してみます。
それぞれ以下のURLにすることでシェアすることができます。
Twitter https://twitter.com/share?text=【シェアするテキスト】&url=【シェアするURL】 Facebook http://www.facebook.com/share.php?u=【シェアするURL】 LINE https://line.me/R/msg/text/?【シェアするテキスト】【シェアするURL】
シェアボタンを追加する要素を作成します。
HTML
<div id="sns-area"></div>
JavaScriptでボタンを生成して埋め込みます。
JavaScript
// SNSボタンを追加するエリア var snsArea = document.getElementById('sns-area'); // シェア時に使用する値 var shareUrl = 'https://cly7796.net/blog/'; // 現在のページURLを使用する場合 location.href; var shareText = 'cly7796.netのトップページです。'; // 現在のページタイトルを使用する場合 document.title; generate_share_button(snsArea, shareUrl, shareText); // シェアボタンを生成する関数 function generate_share_button(area, url, text) { // シェアボタンの作成 var twBtn = document.createElement('div'); twBtn.className = 'twitter-btn'; var fbBtn = document.createElement('div'); fbBtn.className = 'facebook-btn'; var liBtn = document.createElement('div'); liBtn.className = 'line-btn'; // 各シェアボタンのリンク先 var twHref = 'https://twitter.com/share?text='+encodeURIComponent(text)+'&url='+encodeURIComponent(url); var fbHref = 'http://www.facebook.com/share.php?u='+encodeURIComponent(url); var liHref = 'https://line.me/R/msg/text/?'+encodeURIComponent(text)+' '+encodeURIComponent(url); // シェアボタンにリンクを追加 var clickEv = 'onclick="popupWindow(this.href); return false;"'; var twLink = '<a href="' + twHref + '" ' + clickEv + '>twitter</a>'; var fbLink = '<a href="' + fbHref + '" ' + clickEv + '>facebook</a>'; var liLink = '<a href="' + liHref + '" target="_blank">line</a>'; twBtn.innerHTML = twLink; fbBtn.innerHTML = fbLink; liBtn.innerHTML = liLink; // シェアボタンを表示 area.appendChild(twBtn); area.appendChild(fbBtn); area.appendChild(liBtn); } // クリック時にポップアップで表示させる関数 function popupWindow(url) { window.open(url, '', 'width=580,height=400,menubar=no,toolbar=no,scrollbars=yes'); }
これでシェアボタンが生成できました。
シェアボタン埋め込みのデモページ
埋め込むエリアとシェアするURL、テキストを指定すればいいようにしています。
テキストではなく画像にしたい場合、generate_share_button()内のリンク追加部分(27~29行目)を適宜変更してください。
【参考サイト】
コメントが承認されるまで時間がかかります。