dom scripting ことはじめ

28
DOM Scripting こここここ ここ

Upload: tomohiro-mitsumune

Post on 20-Dec-2014

2.391 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: DOM Scripting ことはじめ

DOM Scripting ことはじめ

光宗

Page 2: DOM Scripting ことはじめ

自己紹介

• photohitoメイン開発者(1人)• 最近は JavaScript++

• Xbox360大好き–ゲーマータグは Kiske3

• ラーメン大好き–ラーメン部つくりませんか?

Page 3: DOM Scripting ことはじめ
Page 4: DOM Scripting ことはじめ

では本題

Page 5: DOM Scripting ことはじめ

DOM Scripting

The term DOM Scripting refers toprogrammatically accessing theDocument Object Model (DOM).

http://en.wikipedia.org/wiki/DOM_scripting

Page 6: DOM Scripting ことはじめ
Page 7: DOM Scripting ことはじめ
Page 8: DOM Scripting ことはじめ

W3Cによる DOMの定義

プログラムとスクリプトによるドキュメントのコンテンツと構造とスタイルへの、動的なアクセスと更新を可能にする、プラットフォームおよび言語的に中立なインターフェース

Page 9: DOM Scripting ことはじめ

• IE vs NN• 動的ページが DHTMLと呼ばれていた時代

• HTML+CSS+JSを密に連携• ブラウザによる独自拡張のため差異が大きい

Page 10: DOM Scripting ことはじめ

• W3C (World Wide Web Consortium)による勧告

• APIであるので JS以外でも実装されてる• 標準化されているのでブラウザ間で同じ実装をすれば動く

Page 11: DOM Scripting ことはじめ

Web標準

• 標準化の方向– ECMAScript– DOM– CSS

• Tamarin– AdobeからMozillaに提供された AVM2– ECMAScript4準拠– Firefox4に搭載予定

Page 12: DOM Scripting ことはじめ

脱線してきたので話を DOMに戻します

Page 13: DOM Scripting ことはじめ

JavaScript

(X)HTMLXML

DOM Scripting

Page 14: DOM Scripting ことはじめ

DOMの基本

Page 15: DOM Scripting ことはじめ

ツリーオブジェクト

HTML文書をツリー状オブジェクトにマッピング

Page 16: DOM Scripting ことはじめ

ノード

ツリーの各要素をノードと呼ぶ。よく使うノードは3種類。<p title="お知らせ ">本日は第7回社内勉強会に集まっていただきあ

りがとうございます</p>

要素ノード

p

お知らせ

本日は第7回社内勉強会に集まっていただきありがとうござ

います。

属性ノード テキストノード

Page 17: DOM Scripting ことはじめ

メソッド

オブジェクト上のノードを編集したり、新規に追加したりする• getElementById• getElementsByTagName• getAttribute / setAttribute• createElement• createTextNode• appendChild

Page 18: DOM Scripting ことはじめ

以上、基本終わり

Page 19: DOM Scripting ことはじめ

3 つの原則

Progressive Enhancement

Graceful Degradation

Unobtrusive JavaScript

Page 20: DOM Scripting ことはじめ

Progressive Enhancement

• 段階的強化

•JavaScript

•CSS

•(X)HTML

Structureに付加的な情報レイヤーを適用

Page 21: DOM Scripting ことはじめ

Graceful Degradation

表示機能的に劣る(もしくは意図的に JS OFFにしている)ブラウザでも、できるだけそれに合わせた形でアクセシビリティを保つこと

• 例えば–Wii / PS3 / PSP / DS といったゲーム機付属のブラウザ

– docomo / au / SBM /スマートフォンなどの携帯ブラウザ

Page 22: DOM Scripting ことはじめ

Unobtrusive JavaScript

HTML(Strucuture)の中に JavaScript(Behavior)を記述しないスタイル

onclick、 onmouseoverとかをマークアップ内に書いていいのは小学生までだよねー

イベントハンドラは HTMLから分離しましょう

Page 23: DOM Scripting ことはじめ

3原則の目的

「OFF環境に優しく」

Page 24: DOM Scripting ことはじめ

例 1

• JavaScript擬似プロトコル

<a href="javascript:popUp('http://photohito.com');">photohito.com</a>

Page 25: DOM Scripting ことはじめ

例2

• インラインイベントハンドラ

<a href="#" onclick="popUp('http://photohito.com'); return false;">photohito.com</a>

Page 26: DOM Scripting ことはじめ

例 3

• まぁまぁ良い例

<a href="http://photohito.com" onclick="popUp(this.href); return false;">photohito.com</a>

Page 27: DOM Scripting ことはじめ

例 4

• 良い例<a href=http://photohito.com" id="photohito">photohito.com</a>

<script type="text/javascript">window.onload = function() { var anchor = document.getElementById("photohito"); anchor.onclick = function() { popUp("http://photohito.com"); return false; }}</script>

Page 28: DOM Scripting ことはじめ

まとめ

• DOM Scriptingについて解説• 3原則–Progressive Enhancement–Graceful Degradation–Unobtrusive JavaScript