Web版非公式RT ブックマークレット Chrome のみ動作確認。既存の不具合 : URLが含まれるツイートがあるとダメ Ver 0.01
Web版非公式RT ブックマークレット Chrome のみ動作確認。既存の不具合 : URLが含まれるツイートがあるとダメ Ver 0.01
/* Web版非公式RT ブックマークレット Chrome のみ動作確認 WebInformalRT Version : 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]; } } }