ここから本文です

ブックマークレット。JSONP。 mixiのホーム画面の右上の広告のところにツイッター...

mil********さん

2010/5/1909:00:14

ブックマークレット。JSONP。
mixiのホーム画面の右上の広告のところにツイッターのタイムラインを表示したいと考えています。
広告のところのidはadBannerで、この広告をinnerHTML="";で消すことはできました。

しかしその下のスクリプトが反応しません。

ちなみに、var divEle=...のところからのスクリプトは、ローカル上で試したところ、ちゃんとツイッターの更新情報を取得することができました。



javascript:(function(){

var adbn = document.getElementById('adBanner');
adbn.innerHTML = "";

var divEle = document.createElement('div');
divEle.setAttribute('id','twitter');
divEle.setAttribute('style','width:250px;height:250px;font-size:80%;');
adbn.appendChild(divEle);

function showTweet(jsonAry){
var tweetText="";
for(var i=0;i<jsonAry.length;i++){
tweetText+= "<div style='height:48px;'><img src='"+jsonAry[i].user.profile_image_url+"' style='float:left;' /><span>"+jsonAry[i].text+"</span></div>";
}
document.getElementById('twitter').innerHTML = tweetText;
}
var jsonScript = document.createElement('script');
jsonScript.setAttribute('src','http://twitter.com/statuses/friends_timeline/103635802.json?callbac...
jsonScript.setAttribute('type','text/javascript');
adbn.appendChild(jsonScript);
})();




このブックマークレットをちゃんと表示させるにはどうすればいいでしょうか?
ちなみにjavascriptの勉強もかねて作っているので、「ブックマークレット twitter」で検索すれば…。というような回答は無しでお願いします。




javascript:(function(){var adbn = document.getElementById('adBanner');adbn.innerHTML = "";var divEle = document.createElement('div');divEle.setAttribute('id','twitter');divEle.setAttribute('style','width:250px;height:250px;font-size:80%;');adbn.appendChild(divEle);function showTweet(jsonAry){var tweetText="";for(var i=0;i<jsonAry.length;i++){tweetText+= "<div style='height:48px;'><img src='"+jsonAry[i].user.profile_image_url+"' style='float:left;' /><span>"+jsonAry[i].text+"</span></div>";}document.getElementById('twitter').innerHTML = tweetText;}var jsonScript = document.createElement('script');jsonScript.setAttribute('src','http://twitter.com/statuses/friends_timeline/103635802.json?callbac...})();

補足この知恵袋でのコードではわかりませんが(変数名等、実際に試してるコードと変えたので)、スペルミス等は恐らくないと思います。

また、最後が抜け落ちてしまっているのは、この知恵袋の文字数制限の問題のようです。ちゃんとギリギリおさまるように投稿したつもりでしたが…。紛らわしくなってしまいすみませんでした。

それでは引き続きよろしくお願いします。

閲覧数:
360
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

thk********さん

編集あり2010/5/1922:26:45

追記

コードの抜けはそういうことでしたか。


showTweet関数が無名関数の中にあるので外から呼び出せないのでエラーが出ますね。
なので外に出してあげればうまく行くかと思います。

javascript:(function(){...})();function showTweet(){...}


--------------
コードが一部抜けてるだけじゃないですかね?

最後のあたりとか、ちゃんと確認するといいです。

jsonScript.setAttribute('type','text/javascript');
adbn.appendChild(jsonScript);

質問した人からのコメント

2010/5/19 22:32:17

成功 まさにその通りでした!今さっき自分で気づきました(笑)これで一日悩んでいたのですっきりです…!thkt2441さんのようにすぐに解決できるようになりたいものです。
冷静に考えたら、匿名関数の中にあるshowTweetをbodyに追加したscriptから呼び出しても参照できませんね^^;

(function(){})();をやめて、void 0にして見事成功しました。
どうもありがとうございました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる