忍者ブログ

(´゚д゚`)ンマッ!!

Ruby,JavaScriptについての備忘録として書きます。自分用です。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

JavaScriptのクラスでのthis

いままでなんとなくクラスのメンバ(インスタンス変数)を定義するときに

var Test = function(){
  this.hello = unk;
};
var a = new Test();
alert(a.hello);
としてきた。
これで問題ない。

でも、このthisの意味をあまり理解して無くて、今日なにげに
var Test = function(){
  var hello = unk;
};
var a = new Test();
alert(a.hello);
こう書いていた。
undefinedとアラートされるからなんでかなーっておもったけど、
やっぱりthisには意味があったんだと改めて思った。


という備忘録。


まとめれば、
var は 一時的に使うプライベート変数 で、
this を付ければ メンバ変数(インスタンス変数) にできる。
ということだった。

拍手[0回]

PR

JavaScriptでArrayかHashか判定する

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);
}


これを定義してから、次のように実行してみてください。


Sample:
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

拍手[2回]

RubyにもろもろのDLLを簡単にインストールする(まとめ)

Rubyをインストールし、使っていると、

zlib.dll が見つからなかったため、このアプリケーションを開始出来ませんでした。
アプリケーションをインストールし直すとこの問題は解決される場合があります。

のようなエラーに出くわすことがあります。
そしてよく躓きます。のでメモ。


zlib.dll、gdbm.dll、pdcurses.dll、readline.dll
http://blog.cnobi.jp/v1/blog/user/bd4ffa3735bf41c9ed432510ffe298a6/1317541658
にアクセスし、ダウンロードして解凍。
すると中に4つフォルダがあるので、それぞれのフォルダの中のbinフォルダにある「.dll」とつくものを
Rubyのインストールフォルダにあるbinフォルダにコピーします。
Rubyを「C:\ruby」にインストールしていれば「C:\ruby\bin\」にコピーします。
これで、zlib.dll、gdbm.dll、pdcurses.dll、readline.dllの4つのDLLがインストールできます。


このほかにも、iconv.dll,opensll.dllも合った方が安心かも知れません。

iconv.dll
http://www.meadowy.org/meadow/dists/snapshot/old/iconv-1.8.win32.zip
にアクセスしてダウンロード。
それを解凍して、そのフォルダの中のlibフォルダにある「iconv.dll」を先ほどと同じRubyのbinフォルダにコピーします。

openssl.dll
http://code.google.com/p/openssl-for-windows/downloads/detail?name=openssl-0.9.8e_WIN32.zip&can=2&q=
にアクセスし、
「openssl-0.9.8e_WIN32.zip」と表示されているリンクをクリック、ダウンロード。
ダウンロードされたファイルを解凍し、そのフォルダの中のbinフォルダにある「libeay32.dll」と「ssleay32.dll」を先ほどと同じRubyのbinフォルダにコピーします。


これでもうあのエラーには出会わずに済むと思います。

拍手[0回]

facebookのいいねボタンの高さを指定する

facebookのいいねボタン、設置方法やタグの作り方はggればいくらでも記事が出てきて、その通りにやれば作れてしまったのですが、
1つだけ問題が発生しました。
その問題は、『facebookのいいねボタンの高さを指定できない』ということです。

参考にしたブログ記事などでは、作成されるタグがiframeとなっているのですが、
実際作成してみるとdivタグとscriptタグの組み合わせでした。

ま、そんな細かいこと関係ないか、と普通に設置してみたのですが、
他のボタンと横一列に並べてみると、あれ、facebookのボタンだけ低い・・・。
理由は簡単。facebookのボタンがあるiframeに、高さ(height)がCSSによって指定されていたのです。

古いタグだとiframeタグのstyle属性にheightがあるのでそれを編集すればよいのですが、
今回作成した新しいタグにはclass属性がありません。


ということで、無理矢理変更する方法です。


そう、styleタグで無理矢理整えちゃえばいいのです。
でも、普通にやるとタグに直接指定されたstyle属性が優先されheightを変更できません。

そこで、"!important"の出番です。


以下のタグをfacebookのいいねボタンのすぐ下に設置するとできました。



*2011/10/19 facebook側のHTMLタグの仕様が変わっているようなので追記します。
上記のタグではなく、以下のものに変更すればちゃんと動きました。

拍手[0回]

YouTubeとニコニコで聞いてる曲の歌詞を検索するブックマークレット作った

今日は台風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);
そういえば意外に毎日更新できてるな。
ブログとか2日ともたないのに…。
備忘録とブログは違うって事か

拍手[0回]

Copyright © (´゚д゚`)ンマッ!! : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]

管理人限定

プロフィール

HN:
starlit
性別:
男性
自己紹介:
Ruby,JavaScriptでWebサービスとか作ったりしています。
こんなん作れば?とかもっとこうすれば?とかもあれば言ってください。

一緒になんか作ろうぜ!とか言う人は
是非メールなりなんなり送って下さい!

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

ブログ内検索

最新CM

カウンター