5
6

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 5 years have passed since last update.

TwitterのツイートボタンのURLやメッセージを動的にする方法

Last updated at Posted at 2016-07-16

シングルページアプリケーション(SPA)でページ状態に合わせてTwitterでシェアしたいURLを切り替えたい(動的にしたい)時がたまにありますよね。

そんな時はTwitter公式APIの「twttr.widgets.createShareButton」を使うと便利ですよ。

// Twitterの初期化
$(function() {
  var d = document;
  var s = 'script';
  var id = 'twitter-wjs';
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = 'https://platform.twitter.com/widgets.js';
    fjs.parentNode.insertBefore(js, fjs);
  }
});

// twttrの初期化(platform.twitter.com/widgets.jsの完了)が未だなら待つ。
function callAfterTwitterInitialization(callback){
  if(typeof twttr !== "undefined"){
    callback();
  } else {
    setTimeout(function(){
        callAfterTwitterInitialization(callback);
    }, 100);
  }
}

var shareUrl = "http://qiita.com/";
var targetId = "twitter-share-button";
var message = "Qiita wryyyyyyy";
var hashtag = "#wryyyyyyy";

// twttrが使えるようになったらシェアボタンを作る。
callAfterTwitterInitialization(function(){
  $('#' + targetId).empty();
  twttr.widgets.createShareButton(
    shareUrl,
    document.getElementById(targetId),
    {
      count: 'none',
      text: message,
      size: "large",
      hashtags: hashtag,
    });
});

上のスクリプトを動かすと、以下内容を共有するTwitterボタンが動的に作られます。

Qiita wryyyyyyy http://qiita.com/ #wryyyyyyy

使う時には shareUrl と message をページの状態に合わせて入れ替えて下さい。

すっきり。

参考:https://dev.twitter.com/web/javascript/creating-widgets

5
6
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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?