2014年に制作した記事を2015/10に加筆修正
Twitter社が提供しているウィジェットを使って、ツイートボタンを埋め込む方法です。
基本、コードをコピペするだけで設置できます。
<a href="https://twitter.com/share" class="twitter-share-button" data-url="URL" data-text="テキスト">Tweet</a>
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
基本、ツイッター社のボタン選択画面からコピペするだけです。特にカスタマイズの必要はありません。
html4やxhtmlのときはscriptタグにtype属性を追加しても問題なく動作します。
ツイートボタンだけではないのですが、SNS関連のボタンなどを設置しているページがやたら重くなる場合があります。
これは、HTMLは原則ソースの上から順番に実行していくので、
SNSボタンを読み込むのに時間がかかる→webページそのものの表示も遅延する
ということが起こっています。これを回避するために時間差で読み込むようにする方法があります。
方法としてはいろいろありますが、例として以下のような方法があります。
<div id="sns_btn"></div>
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
表示させたい箇所に適当なid名(class名でもよい)を付けた空のdivタグ(など)を設置します。
// Twitter
var twitter_btn =
"<div class='twitter_btn'><a href='https://twitter.com/share' class='twitter-share-button' data-text='*****' data-url='@@@@@' data-lang='ja' data-hashtags='#####'>ツイート</a></div>"
+"<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');<\/script>";
// 1秒後
setTimeout(function(){
$('#sns_btn').append(twitter_btn);
},1000);
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
headタグ内などに上のようなスクリプトを記述します。
ツイッター社のボタン選択画面からコピーしたソースを変数に入れて、上記の例では1秒後(=1000ミリ秒後)にid[sns_btn]を設定したhtmlタグ内に挿入させています。
ほかにscriptタグにasync属性を使って、非同期で読み込む方法などもあります。
2015/01からtwitterはIE8以下のサポートを打ち切ったようです。
そのため、IE8以下においてツイートボタンや埋め込みタイムラインが表示されません。
なお、X-UA-Compatibleを設定しているwebページにおいて、contentの値がIE=8(以下)になっているページではIE9以上でも表示されていません。
IE9以降についても、そのうちサポートしなくなる可能性があります。
ツイッター社の動向に注意しましょう。