Web版非公式RT ブックマークレット Chrome のみ動作確認。既存の不具合 : URLが含まれるツイートがあるとダメ Ver 0.01
Web版非公式RT ブックマークレット Chrome のみ動作確認。既存の不具合 : URLが含まれるツイートがあるとダメ Ver 0.01
/* Web版非公式RT ブックマークレット Chrome のみ動作確認WebInformalRTVersion : 0.01 (2012/1/6)Copyright : (c) 2012 inovia (http://twitter.com/#!/hinekure_inovia)License : MIT license (http://www.opensource.org/licenses/mit-license.php)既存の不具合 : URLが含まれるツイートがあるとダメ*/// ツイートの投稿エリア取得var TweetArea = GetClassName(document,'textarea','twitter-anywhere-tweet-box-editor');// 一番上の選択されたツイートを取得するvar TweetSelect = GetClassName(document,'div','js-stream-item stream-item stream-item expanding-stream-item open');var Node = TweetSelect;// ユーザーネームを取得var UserName = GetClassName(Node,'span','username js-action-profile-name');// ツイートを取得var Tweet = GetClassName(Node,'p','js-tweet-text');// フォーカスを当てるBoxClick(TweetArea);// 反応しない場合があるのでタイマー登録しますtimerID = setTimeout(function(){TweetWrite(TweetArea)},500);// 投稿エリアに反映function TweetWrite(TweetArea){// 念のためもう一度クリックBoxClick(TweetArea);TweetArea.value = "RT "+UserName.innerText+": "+Tweet.innerText;// キャレットを先頭に移動するTweetArea.setSelectionRange(0,0);clearTimeout(timerID);}// ツイートの投稿エリアにフォーカスを当てるfunction BoxClick(TweetArea){var evt = document.createEvent("MouseEvents");evt.initEvent("click", false, true );TweetArea.dispatchEvent(evt);TweetArea.focus();}// クラス名から取得する関数function GetClassName(_doc,tgname,clname) {var tag = _doc.getElementsByTagName(tgname);for (var i=0; i<tag.length; i++){if(tag[i].getAttribute('className') == clname){return tag[i];}else if ( tag[i].getAttribute('class') == clname ){return tag[i];}}}