質問するログイン新規登録

質問編集履歴

2

追記部分の文言を修正

2015/07/25 07:06

投稿

flat
flat

スコア617

title CHANGED
File without changes
body CHANGED
@@ -18,7 +18,8 @@
18
18
  }
19
19
  ```
20
20
 
21
+ **追記**
21
- 自己解決したコードも一応記載しておきます。
22
+ 回答を頂く前に自己解決してしまっので、そのコードも一応記載しておきます。
22
23
  ```JavaScript
23
24
  function insert_script( url ) {
24
25
  // script 要素を生成

1

自己解決したコードを追記

2015/07/25 07:06

投稿

flat
flat

スコア617

title CHANGED
File without changes
body CHANGED
@@ -16,4 +16,40 @@
16
16
  }
17
17
  });
18
18
  }
19
+ ```
20
+
21
+ 自己解決したコードも一応記載しておきます。
22
+ ```JavaScript
23
+ function insert_script( url ) {
24
+ // script 要素を生成
25
+ var script = document.createElement( 'script' );
26
+ // スクリプトのソースを指定
27
+ script.src = url;
28
+ // 非同期読み込みを有効にする
29
+ script.async = true;
30
+ // body タグにノードを追加
31
+ document.body.appendChild( script );
32
+ }
33
+
34
+ // Twitterのシェア数を取得
35
+ function get_social_count_twitter( url, selector ) {
36
+ // url をエンコード
37
+ var url = encodeURIComponent( url );
38
+ // コールバックを生成(キャッシュ対策としてUTCに変換した現在時刻を付加)
39
+ var callback = 'jsonp_twitter_' + ( new Date ).getTime();
40
+ // script 要素に指定するURL
41
+ url = '//urls.api.twitter.com/1/urls/count.json?url=' + url + '&callback=' + callback;
42
+ // script 要素を追加
43
+ insert_script( url );
44
+ // シェア数を表示する要素
45
+ var selector = document.querySelector( selector );
46
+
47
+ // 返り値(JSONP)を利用した処理を実行
48
+ window[callback] = function( res ) {
49
+ // シェア数を表示するためのテキストノードを生成
50
+ var count = document.createTextNode( res.count );
51
+ // selector にテキストノードを追加
52
+ selector.appendChild( count );
53
+ };
54
+ }
19
55
  ```