SSブログ
-| 2010年12月 |2011年01月 ブログトップ
前の10件 | -

alert [JavaScript]

window.alert メソッド

window.alert(string);

オラ、すっごく大事な「こいつ」を忘れてた気がするだ。

ポップアップ ダイアログに、引数 string で示される文字列を表示します。

ポップアップされるのはモーダル ダイアログなので、この alert の表示期間は、スクリプト実行が停止します。

表示されるダイアログには、文字列の他に、[OK] ボタンがあり、ユーザーが [OK] ボタンを押すと alert を抜け、スクリプト実行が再開されます。

window インスタンス スコープで、実行したい window が同じインスタンスの場合は、window を省略し、単に alert(string); と記述するのが通例です。

制御文字('\n' での改行や '\t' での字下げ、'\' でのシングルクォートやダブルクォートのエスケープ等)も使用可能です。

(ソネブロでは '¥' の半角が '\' と表示されるので、上記の '\' は '¥' の半角です)

続きを読む


all [JavaScript]

document.all プロパティ/メソッド

  1. collection = document.all;
  2. allcollection = document.all;
  3. element = document.all.id;
  4. element = document.all[index];
  5. element = document.all[id];
  6. collection = document.all[name];
  7. nodelist = document.all[name];
  8. element = document.all(index);
  9. element = document.all(id);
  10. element = document.all(name);
  11. collection = document.all(name);
  12. nodelist = document.all(name);

なんじゃこら。

形をピックアップするだけでも大変だわ。

指定された DOM(Document Object Model) 形式のドキュメント document に対して、以下の動作をします。

  1. Internet ExplorerOpera がこの形。document 内のすべてのエレメントに対する Element クラス(またはそのサブクラス)のコレクション collection HTMLCollection)を返す。ただし、Internet ExplorerOpera では、格納されている情報が異なる場合があるので、要注意。
  2. SafariGoogle Chrome がこの形。document 内のすべてのエレメントに対する Element クラス(またはそのサブクラス)のコレクション allcollection HTMLAllCollection)を返す。
  3. id プロパティが id であるエレメントへの参照 element を返す。
  4. document 内のインデックス値が index であるエレメントへの参照 element を返す。ただし、Internet Explorer と他のブラウザでは、格納されている情報が異なる場合があるので、要注意。
  5. id プロパティが指標値(文字列) id であるエレメントへの参照 element を返す。
  6. Internet ExplorerOpera がこの形。name プロパティが指標値(文字列) name の複数のエレメントのコレクション collection HTMLCollection)を返す。
  7. SafariGoogle Chrome がこの形。name プロパティが指標値(文字列) name の複数のエレメントのノードリスト nodelist NodeList)を返す。
  8. document 内のインデックス値が index であるエレメントへの参照 element を返す。ただし、Internet Explorer と他のブラウザでは、格納されている情報が異なる場合があるので、要注意。
  9. id プロパティが引数(文字列) id であるエレメントへの参照 element を返す。
  10. Internet Explorer のみ、この形。name プロパティが引数(文字列) name のうち、最初のエレメントの参照 element を返す(模様)。
  11. Opera のみ、この形。name プロパティが引数(文字列) name の複数のエレメントのコレクション collection HTMLCollection)を返す。
  12. SafariGoogle Chrome がこの形。name プロパティが引数(文字列) name の複数のエレメントのノードリスト nodelist NodeList)を返す。

Firefox 系は動きません。

Firefox くらい、態度がはっきりしててくれると、まだ助かるんだけどね。

なんなの? このブラウザごとのバラバラ加減。

はっきり言って、こういう存在は、JavaScript の「癌」です。

【追記】 2010/12/29 22:03 検証したブラウザのバージョンを追記します。
Internet Explorer 8Firefox 3.6.13Opera 11.00Safari 5.0.3Google Chrome 8.0.552.224

続きを読む


getElementsByName [JavaScript]

document.getElementsByName メソッド

collection = document.getElementsByName(name);
nodelist = document.getElementsByName(name);

指定された DOM(Document Object Model) 形式のドキュメント document から、name プロパティが引数(文字列)name であるエレメントに対する Element クラス(またはそのサブクラス)のコレクション collection、またはノードリスト nodelist を返します。

該当するインスタンスが存在しない場合、null ではなく、空のコレクション collection、または空のノードリスト nodelist を返します。

HTML では、ボタンやテキストボックスといったコントロールは、そのエレメントごとに name プロパティで「名前」を付けることができますが、name プロパティはひとつのドキュメント内でユニークである必要はありません。ひとつのドキュメント内で、複数のエレメントで name プロパティが重複しても、大丈夫なわけです。

従って、document.getElementsByName(name) メソッドは、指定された name プロパティを持つコントロール群を、一度に返せるような戻り値を返します。

だから、ユニークな id プロパティでエレメントを探すメソッドが getElementById(単数形)なのに対して、name プロパティでエレメントを探すこのメソッドの名前は getElementsByName(複数形)なんですね。

問題の戻り値のインスタンスなんですが、ブラウザ依存です(またかよ・・・・・・)

Internet Explorer 8Firefox 3.6.13 では、戻り値が HTMLCollection というオブジェクト インスタンスで返ってきます。

一方、Opera 11.00Safari 5.0.3Google Chrome 8.0.552.224 では、戻り値が NodeList というオブジェクト インスタンスで返ってきます。

いずれ HTMLCollectionNodeList もエントリーにしますが、あんまり便利な代物じゃありません。

続きを読む


getElementsByTagName [JavaScript]

document.getElementsByTagName メソッド

collection = document.getElementsByTagName(tagname);
nodelist = document.getElementsByTagName(tagname);

指定された DOM(Document Object Model) 形式のドキュメント document から、tagName プロパティが引数(文字列)tagname であるエレメントに対する、Element クラス(またはそのサブクラス)のコレクション collection、またはノードリスト nodelist を返します。

タグ名ですから、getElementsByTagName('a'); とか、getElementsByTagName('body'); なんてこともできちゃいます。

該当するインスタンスが存在しない場合、null ではなく、空のコレクション collection、または空のノードリスト nodelist を返します。

HTML では、ボタンやテキストボックスといったコントロールは、その種類のエレメントごとに「HTML タグ」が決められており、同一のタグを持つコントロールは、ひとつの document 内に複数存在する可能性があります。

従って、document.getElementsByTagName(tagname) メソッドは、指定されたタグ名のコントロール群を、一度に返せるような戻り値を返します。

だから、ユニークな id プロパティでエレメントを探すメソッドが getElementById(単数形)なのに対して、tagName プロパティで探すこのメソッドの名前は getElementsByTagName(複数形)なんですね。

こいつは Ajax などで、かなりいい加減にサーバーから送信した XML でも、XMLHttpObject オブジェクト インスタンスの responseXML プロパティで受け取った DOM オブジェエクトを、きちんとフィールドごとの Element としてピックアップしてくれるので、かなり重宝します。

問題の戻り値のインスタンスなんですが、ブラウザ依存です(また出たよ・・・・・・)

Internet Explorer 8Firefox 3.6.13 では、戻り値が HTMLCollection というオブジェクト インスタンスで返ってきます。

一方、Opera 11.00Safari 5.0.3Google Chrome 8.0.552.224 では、戻り値が NodeList というオブジェクト インスタンスで返ってきます。

HTMLCollectionNodeList もいずれエントリーにしますが、あんまり便利な代物じゃありません。

続きを読む


getElementById [JavaScript]

document.getElementById メソッド

element = document.getElementById(id)

指定された DOM(Document Object Model) 形式のドキュメント document から、id プロパティが引数(文字列)id であるエレメントに対する Element クラス(またはそのサブクラス)のインスタンス参照 element を返します。

該当するエレメントが存在しない場合、null を返します。

HTML では、その document 内にある複数のエレメントが、それぞれ個別に持つ id プロパティは、必ずユニーク(=一意、つまり同じ値を持つ複数の要素の共存は許されない、という意味)でなければならないので、id が決まると、特定できるエレメントは、必ずひとつか、もしくは存在しません(該当する id プロパティを持つエレメントがない場合)。

なので、document.getElementById が返してくるエレメントのインスタンス参照は、必ずひとつか、存在しない場合は null か、このいずれかになります。

最近の JavaScript では、なんつったって、こいつがいないと、困っちゃいますね。

続きを読む


JavaScrip のクラスの多重継承(の、ようなもの) [JavaScript]

◆JavaScrip のクラスの多重継承(の、ようなもの)

俺さあ、C++ あがりだからさあ、「クラス」と聞いたら、どんな言語でも「多重継承できたらな~」って思うんですよ。

ということで、JavaScript でも試してみましょう。

「多重継承マニア」の方は、お楽しみくださいw。

続きを読む


JavaScrip のクラスの継承 [JavaScript]

◆JavaScript のクラスの継承

「クラス」が作れるんならさあ、新しいクラスを作るときに、もう使える道具を持ってるクラスから派生(継承)して、楽したいよね。

ってことで、今回は「クラスの継承」です。

以前のエントリーで、クラス ClassA を作成しました。

ここから、新しいクラスを作成します。

【注意】 2010/12/23/ 22:50 追記があります。

続きを読む


JavaScript のクラスの作成 - 3 ~クロージャ編~ [JavaScript]

◆JavaScript のクラスの作成 - 3 ~クロージャ編~

前回のエントリー「JavaScript のクラスの作成 - 2 ~プロトタイプ編~」の続きです。

今回は、JavaScript の「クラス」の作成の中でも、「プロトタイプが呼べないクラス」に注目します。

クラスの作り方によっては、「プロトタイプが定義されているのに、インスタンスから呼び出せない」という状況が発生します。

それは、そうなってしまうのを了解したうえで、それでも得られるメリットを活かすクラス作りを、わざとやるんです。

今回は、これを覚書にしておきます。

続きを読む


JavaScript のクラスの作成 - 2 ~プロトタイプ編~ [JavaScript]

◆JavaScript のクラスの作成 - 2 ~プロトタイプ編~

前回のエントリー「JavaScript のクラスの作成 - 1 ~基本編~」の続きです。

今回は、JavaScript の「クラス」の作成の中でも、「プロトタイプ」に注目します。

続きを読む


JavaScript のクラスの作成 - 1 ~基本編~ [JavaScript]

◆JavaScript のクラスの作成 - 1 ~基本編~

今回のエントリーは、長いよ~www。

「プログラミング言語」の中でも、「オブジェクト指向言語」には、しっかりと定義された「役割」を与えられて、その「役割」を、最初から最後まで(エラーまで)面倒を見ることを目的とした、「オブジェクト」という概念があります。

その「オブジェクト」の概念を具現化したもののひとつが、特定の「役割」を果たすための道具の「まとまり」を一か所に集中定義できる、「クラス」の考え方です。

JavaScript が「オブジェクト指向言語」かどうかはおいといて;;;、JavaScript にも「クラス」の概念があります。

最初はちょっと「とっつきづらい」けれど、慣れちゃうと便利、便利。

ところが、慣れてくると自分のフレームワークを作ってしまうので、なかなかゼロからクラスを作る機会がなくなってくる。

こうなると、パソコンや携帯の漢字変換に慣れた人が漢字を書けなくなるかのごとく、クラスの作り方や性質を忘れちゃうんですよね。

ここでは、JavaScript のクラス周りを、備忘録代わりにメモしておきたいと思います。

ひとつのエントリーにまとめようとしたけれど、ボリューム的にムリムリ;;;。

まとめきれないので、数回に分けます。

あのねえ・・・・・・言っとくけど、「JavaScript のクラスの作成」だけで、一週間は酒飲みながら話せるからねw。

ちなみに俺は「理論派」じゃなくて、「実践主義者」です。

いくら「理論」で攻めたって、実際に使う人の手元で動かなかったら、意味ないですもんね!

・・・・・・ということで、今回は、クラスの作成の「基本編」です。

続きを読む


前の10件 | -
-|2010年12月 |2011年01月 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

この広告は180日新規投稿のないブログに表示されます