はてなスターを付ける時に擬音を鳴らすブックマークレット
http://d.hatena.ne.jp/legnum/20080421/1208763915 さんを見て面白そうなのでやってみました。下記をアドレスバーとかに貼りつけて実行後、1回音が鳴ると使えます。あとはスターボタンをクリックします。
javascript:sound="http://dancingmadly.hp.infoseek.co.jp/star.mp3";var%20b=document.body;void(z=document.createElement('script'));void(z.src='http://dancingmadly.hp.infoseek.co.jp/starsound.js');void(b.appendChild(z));
embed要素を作って強引に音を鳴らしています。soundのURLを変えると音を変えることができます。
Firefox+QuickTime、IE6+WMPで動作確認。(IE6+QuickTimeだと、スターがつきません。よくわかりません。)
ソースを置いてあるInfoseekにアクセス制限くらったら動きません。
ソースとか
// img > .hatena-star-add-buttonで探す用の関数 function getElementsByClass(searchClass) { var classElements = new Array(); var allElements = document.getElementsByTagName("img"); for (i = 0, j = 0; i < allElements.length; i++) { if (allElements[i].className == searchClass) { classElements[j] = allElements[i]; j++; } } return classElements; } // embedを作る関数 function createElement(){ var embed=document.createElement('embed'); embed.src=sound; embed.id="embedtag"; return embed; } // embedを作る document.body.appendChild(createElement()); var buttons = getElementsByClass("hatena-star-add-button"); for( var key in buttons ){ buttons[key].onmousedown = function(){ // embedを消して、 var embed=document.getElementById("embedtag"); document.body.removeChild(embed); // embedを作る document.body.appendChild(createElement()); }; }
感想
なんか色々ダメダメかも。あと、jQueryに慣れたせいか、違和感多かったです。
追記
擬音ファイルにswfを使うといいかもしれない。
http://d.hatena.ne.jp/joma/20080424/p1