はてなスターを付ける時に擬音を鳴らすブックマークレット

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