いままでなんとなくクラスのメンバ(インスタンス変数)を定義するときに
var Test = function(){
this.hello = unk;
};
var a = new Test();
alert(a.hello);
としてきた。
var Test = function(){
var hello = unk;
};
var a = new Test();
alert(a.hello);
こう書いていた。JavaScriptには、変数の方を取得するための手段として、typeofが準備されていますが、
こいつが不便で配列も連想配列(hash)もどちらも"object"と判定します。
配列か連想配列かの判定はできないのです。
ということで、配列ならarray,連想配列ならhash,その他ならそのままtypeofの値を戻す関数を作りました。
classOf:
function classOf(obj){
if((typeof obj)=="object"){
if(obj.length!=undefined)return "array";
else{for(t in obj){
if(obj[t]!=undefined)return "hash";
else return "object";
}}
}else return (typeof obj);
}
a = [0,1,2,3,4,5];
document.write(typeof a);// object
document.write(classOf(a));// array
b = {"a":"A", "b":"B"};
document.write(typeof b);// object
document.write(classOf(b));// hash
Rubyをインストールし、使っていると、
facebookのいいねボタン、設置方法やタグの作り方はggればいくらでも記事が出てきて、その通りにやれば作れてしまったのですが、
1つだけ問題が発生しました。
その問題は、『facebookのいいねボタンの高さを指定できない』ということです。
参考にしたブログ記事などでは、作成されるタグがiframeとなっているのですが、
実際作成してみるとdivタグとscriptタグの組み合わせでした。
ま、そんな細かいこと関係ないか、と普通に設置してみたのですが、
他のボタンと横一列に並べてみると、あれ、facebookのボタンだけ低い・・・。
理由は簡単。facebookのボタンがあるiframeに、高さ(height)がCSSによって指定されていたのです。
古いタグだとiframeタグのstyle属性にheightがあるのでそれを編集すればよいのですが、
今回作成した新しいタグにはclass属性がありません。
ということで、無理矢理変更する方法です。
そう、styleタグで無理矢理整えちゃえばいいのです。
でも、普通にやるとタグに直接指定されたstyle属性が優先されheightを変更できません。
そこで、"!important"の出番です。
以下のタグをfacebookのいいねボタンのすぐ下に設置するとできました。
今日は台風15号の影響で学校休み。
時間があったから音楽聞いてたんだけど、歌詞検索って毎回めんどいなーって思った。
ということで、一発で歌詞検索できるブックマークレット作った。
洋楽の歌詞が検索出来ないのが欠点。
いや、出来ないものが多い、かな。
Lyricsとか付加すればいいんだろうけど、そもそも今聞いてるのが洋楽かどうか判断するのがすごい難しそうなので諦めることにした。
歌詞検索
javascript:(function(u){
var t;
/* YouTube */
if(u.match(/^http\:\/\/www.youtube.com\//)){
t=encodeURI(document.title.replace(/^YouTube - /,'').replace(/ - YouTube$/,''));
/* NicoNico */
}else if(u.match(/^http\:\/\/www.nicovideo.jp\//)){
t=encodeURI(document.title.replace(/ - ニコニコ動画\(.*?\)$/,''));
}
t=t.replace(/【.+?】/,'').replace('高音質','').replace('PV','').replace('MV','');
window.open('http://www.google.co.jp/search?q=%E6%AD%8C%E8%A9%9E goo '+t);
})(location.href);
そういえば意外に毎日更新できてるな。