jQueryでは次のコードでTwitterのシェア数を取得出来ますが、これをVanillaに置き換えるとどの様なコードになるのでしょうか…?
JavaScript
1// Twitterのシェア数を取得 2function get_social_count_twitter( url, selecter ) { 3 jQuery.ajax({ 4 url:'//urls.api.twitter.com/1/urls/count.json', 5 dataType:'jsonp', 6 data:{ 7 url:url 8 }, 9 success:function( res ){ 10 jQuery( selecter ).text( res.count || 0 ); 11 }, 12 error:function(){ 13 jQuery( selecter ).text( '0' ); 14 } 15 }); 16}
追記
回答を頂く前に自己解決してしまったので、そのコードも一応記載しておきます。
JavaScript
1function insert_script( url ) { 2 // script 要素を生成 3 var script = document.createElement( 'script' ); 4 // スクリプトのソースを指定 5 script.src = url; 6 // 非同期読み込みを有効にする 7 script.async = true; 8 // body タグにノードを追加 9 document.body.appendChild( script ); 10} 11 12// Twitterのシェア数を取得 13function get_social_count_twitter( url, selector ) { 14 // url をエンコード 15 var url = encodeURIComponent( url ); 16 // コールバックを生成(キャッシュ対策としてUTCに変換した現在時刻を付加) 17 var callback = 'jsonp_twitter_' + ( new Date ).getTime(); 18 // script 要素に指定するURL 19 url = '//urls.api.twitter.com/1/urls/count.json?url=' + url + '&callback=' + callback; 20 // script 要素を追加 21 insert_script( url ); 22 // シェア数を表示する要素 23 var selector = document.querySelector( selector ); 24 25 // 返り値(JSONP)を利用した処理を実行 26 window[callback] = function( res ) { 27 // シェア数を表示するためのテキストノードを生成 28 var count = document.createTextNode( res.count ); 29 // selector にテキストノードを追加 30 selector.appendChild( count ); 31 }; 32}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/25 06:51