Twitterのハッシュをセレクトボックスから選択し挿入するスクリプトを書いては見たものの
[追記 2011 Aug. 27th 01:50ごろ]
SeaHorseスクリプト化したものを以下のエントリで公開
以前書いたTwitter向けスクリプトをユーザスクリプト化した
[追記 終了]
上手く完成させられず
Twitterで日本語ハッシュタグが使用可能になりましたね。
Twitterブログ: #日本語ハッシュタグ
というわけで、タイミング的に以前から考えてたスクリプトを書くなら今かなと思い書いてみました。
予めセレクトボックスにハッシュタグを用意しておいて、ボタンによる1クリックでテキストエリアに挿入するという単純なものです。
とりあえず、テストしながら書きやすいのでUAスクリプトで先に作って、SeaHorseスクリプト化しようという魂胆でした。
UAスクリプトは簡単に出来たので、さぁ移植するぞというところで問題発生。
TwitterはTLをjavascriptで生成してるのですが、そのためにSeaHorseスクリプトが発動するタイミングでは挿入しようとしていたノードが無いのです。
タイミングをずらそうと試行錯誤しましたが、結局諦めました\(^o^)/
javascriptを我流で憶えてるので、ダメダメな部分が多いんですよねw
UAスクリプト
新たにハッシュを追加したい場合は先頭の変数 opts の代入式に追記してください。
(Sleipnir 2.9.7 + IE9 でのみ動作確認)
(function(){ var opts = new Array( new Array("#2ch", "2ちゃんねる"), new Array("#nicovideo", "ニコニコ動画"), new Array("#日本語ハッシュ", "日本語ハッシュ") ); var d = document.getElementsByTagName("div"); for(var i = 0; i < d.length; i++) { if(d[i].className == "tweet-box-title") { d = d[i]; break; } } var sel = document.createElement("select"); sel.name = "hashTags"; sel.style.float = "right"; for(var i = 0; i < opts.length; i++) { var opt = document.createElement("option"); opt.value = opts[i][0]; opt.innerText = opts[i][0] + " " + opts[i][1]; sel.appendChild(opt); } d.appendChild(sel); var ins = document.createElement("a"); ins.style.float = "right"; ins.style.display = "block"; ins.style.border = "1px solid #cccccc"; ins.style.backgroundColor = "#f0f0f0"; ins.style.color = "#000000"; ins.style.marginRight = "0.5em"; ins.style.padding = "0 0.5em"; ins.innerText = "Ins."; ins.href = "javascript:(function(){document.getElementsByTagName('textarea')[0].value += ' ' + document.getElementsByTagName('option')[document.getElementsByName('hashTags')[0].options.selectedIndex].value;})();"; d.appendChild(ins); })();