JavaScript における DOM 操作 XML 読み込み Ajax( 動的 HTML 編集 ) 情報システム工学科ラシキアゼミ 3年 H 107072 田中直樹.

Slides:



Advertisements
Similar presentations
Copyright © Ariel Networks, Inc. AJAX 勉強会 アリエル・ネットワーク株式会社.
Advertisements

1 JSP の作成 JSF による Web アプリケーション 開発 第 4 回. 2 ここでの内容 JSF での JSP の作り方と動かし方につい て学ぶ。
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
1 PHP プログラムの実行(まと め) 担当 岡村耕二 月曜日 2限 平成 22 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授、菅沼明 准教授等による以前の講義資料をもとにしています。
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
Flash SWF ファイル書き換え PHP extension 2008 年 7 月 21 日 よや.
Scala + Liftフレームワーク その2.
RailsによるAjaxの利用 回生 小野 実.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
Flash 書き換え PHP extension “SWF Editor”
MS-Word ⇒ XML 2001/10 マウスをクリックしてください。(カーソルはどこにあっても結構です。)次ページが表示されます。
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
第11回JavaScriptゼミ セクション8-2 発表者 直江 宗紀.
画像展示サイト“Fragments” 『閲覧しやすさ』と『デザイン性』を両立させた Webデザイン
JPAを利用した RESTful Webサービスの開発
JavaScript プログラミング入門 2006/11/10 神津.
NC-2 情報通信基礎実験 WEBデザイン基礎実験 (2日目) 担当:清水,田代 副手:浦辺,石井.
ウェブページ制作の基礎 タグの直接入力によるウェブページの制作 次のスライドへ進んだり,戻ったりしたい時は,右下のボタンをクリック。 次へ.
情報システム工学科 ラシキアゼミ 3年 H 田中直樹
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
IE5でアプリケーション開発 東日本計算センター 小野 修司.
エンタープライズアプリケーション II 第10回 / 2006年7月23日
アルゴリズムとデータ構造1 2007年6月12日
XMLゼミ 2.3 XMLのプロローグ 2.4 XMLのタグ 高橋 辰裕.
第13回 プログラミングⅡ 第13回
ファイルの場所に関して.
第4回 個人の動画配信補足のためのWeb構築
オペレーティングシステムⅡ 第3回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト 2009/10/16.
Flash 書き換え PHP extension “SWF Editor”
卒研:データベースチーム 第4回 DOMを使った処理
情報科学1(G1) 2016年度.
HTTPプロトコルとJSP (1) データベース論 第3回.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
Webを利用した授業支援システムの開発 北海道工業大学 電気電子工学科 H 渋谷 俊彦.
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
押さえておきたいIE8の セキュリティ新機能
HTTPプロトコル J2EE I 第7回 /
Day3 Day4 Day3 Day4.
XML読み込みとDOM操作で Ajaxに近づこう
情報コミュニケーション入門 総合実習(1) 基礎知識のポイント(2)
XMLゼミ 5.1 XML文書と表示 5.2 CSS 5.3 XMLとXSL 高橋 辰裕.
データベース設計 第9回 Webインタフェースの作成(1)
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
基礎プログラミング演習 第1回.
プログラミング演習3 第2回 GUIの復習.
第8章 Web技術とセキュリティ   岡本 好未.
介護支援システム SYLVIE 頼れる介護のセキュリティ 開発メンバー リーダー 岩本 和磨
9.1 DOMの概要 9.2 DOMプログラミングの基礎 9.3 DOMのプログラミング例
第4回JavaScriptゼミ セクション2-8 発表者 直江 宗紀.
暗黙的に型付けされる構造体の Java言語への導入
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
Javaによる Webアプリケーション入門 第6回
基礎プログラミング演習 第5回 関数とイベントを使ったプログラム.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
情報コミュニケーション入門b 第11回 Web入門(2)
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
項目間の対応関係を用いた XBRL財務報告書自動変換ツールの試作
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
統計ソフトウエアRの基礎.
プログラミング演習I 2003年7月2日(第11回) 木村巌.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
地域生活支援システムの開発 越田研究室 j0431 野津洋二.
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
Microsoft SharePoint Online の Web サイトを カスタマイズする方法
今の俺にシカクはねぇ!! 資格取得支援システム.
例題のプログラムを通して JavaScriptの仕組みを理解することとします。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

JavaScript における DOM 操作 XML 読み込み Ajax( 動的 HTML 編集 ) 情報システム工学科ラシキアゼミ 3年 H 107072 田中直樹

目次 XML データの読み込み XML データの読み込み DOM 操作による動的 HTML 編集方法 DOM 操作による動的 HTML 編集方法 要素を生成し、階段構造の要素を作成す る 要素を生成し、階段構造の要素を作成す る 階段構造の要素から、データを取り出す、 HTML 部にデータを組み込む 階段構造の要素から、データを取り出す、 HTML 部にデータを組み込む

今回の目標 XML ファイルの読み込み・データの取り 出しが出来るようになる XML ファイルの読み込み・データの取り 出しが出来るようになる DOM 操作の関数を用いて、 XML ・ HTML 要素の取り出しを行えるようになる DOM 操作の関数を用いて、 XML ・ HTML 要素の取り出しを行えるようになる 動的 Web ページの実現 ( ページの自由な書 き換え ) が出来るようになる 動的 Web ページの実現 ( ページの自由な書 き換え ) が出来るようになる 階層構造の要素を作成できるようになる 階層構造の要素を作成できるようになる

前回内容の軽い復習 XML・・・まずはタグ構造によるファイ ルを作成 XML・・・まずはタグ構造によるファイ ルを作成 JavaScript ・・・ JavaScript ・・・ 基本的な概念 ( 変数、データ型、基本処理構造 ) 、 基本的な概念 ( 変数、データ型、基本処理構造 ) 、 DOM 操作のために、オブジェクトに属性を付 与DOM 操作のために、オブジェクトに属性を付 与 オブジェクトの属性を辿って、オブジェクトの データを取得 (DOM 操作入門 ) オブジェクトの属性を辿って、オブジェクトの データを取得 (DOM 操作入門 )

var dom = document.myForm.text1.value ; var dom = document.myForm.sel1.selectedIndex ; ① var str1 = document.myForm.sel1. options[ 選択されている配列アドレス ].value ② 登場した操作

XML ファイルを読み込 む XMLファイルを読み込む操 作 XMLファイルを読み込む操 作 ・・・この操作は扱うブラウザ ( エンジン ) に よって操作 ( 呼び出すオブジェクト ) が違う ことが多い。 ライブラリを用いれば、それも解消できる が、いきなりライブラリを使っても仕組み が理解できないので、今回は FireFox に対 応した方法を用いる。

XML ファイル読み込み手 順 読み込み用オブジェクトの生成 読み込み用オブジェクトの生成 var xhttp = new XMLHttpRequest() XMLHttpRequest() ・・・ Mozilla 系ブラウザで用いるオブジェクト。 このオブジェクトの機能を使って、 XML ファイル を読み込む。

XML ファイル読み込み手 順 通信方法の設定 通信方法の設定 xhttp.open(“GET”,“1st_kadai1.xml”, false); open メソッド 引数は、 http 通信でどの命令を行うか (POST or GET) 、通信を行うファイル名、同期通信か非同期 通信かの指定

XML ファイル読み込み手 順 http 送信のリクエストを出し、ファイルを読 み込む http 送信のリクエストを出し、ファイルを読 み込む xhttp.send(null) ; send メソッド サーバに HTTP リクエストを送信する。送信先の URL 、送信方式( GET や POST など)は、 open メソッドで指定したものになる。 データを送信しない時でも必要で、その場合、 引数が null になる。 ( 今回はこれ )

XML ファイル読み込み手 順 XMLデータを取り出す XMLデータを取り出す var xmldoc = xhttp.responseXML ; 通信が成功すれば、 通信を行ったオブジェ クトの responseXML プロパティから、取 得した XML データを受け取ることができる。

XML ファイル読み込み手 順 XMLノード ( 要素 ) を取り出す XMLノード ( 要素 ) を取り出す var node = xmldoc.getElementsByTagName(“ タグ名 ") ; getElementsByTagName メソッドで、取 得したいデータが格納されたタグを指定し、 データを取得する。

var dom = objects.getElementsByTagName(node) var dom = objects.getElementsByTagName(node) 引数 (node) :要素を取得したいオブジェクトのタグ 名 機能:対象のオブジェクト群の中から、引数で指定し たタグ名で定義されたデータをすべて取得する。戻 り値を格納した変数は自動的に配列になる。 基本的に、 XML のデータを格納する際に用いられる。 つまり、親要素 objects は XML のタグを格納した変 数となる。 DOM 操作 要素の取り出し方

XML ファイル読み込み手 順 XMLノード ( 要素 ) を取り出す XMLノード ( 要素 ) を取り出す var memberNum = nodes[i].childNodes[0].nodeValue nodes[i] ・・・ getElementsByTagName で取 り出したデータ ( 配列 ) nodes[i] 以下は、構造上このようにアクセスす る。 nodeValue は格納されたデータを指す。

DOM Document Object Model Document Object Model 文書オブジェクトモデルともいう。 Web ページの内容 ( 文章、画像、音声など ) 及びそれ らの配置、スタイルをオブジェクトとして扱い、そ れらをスクリプト言語を使って制御するための取り 決め。 また、その制御をおこなうための API(Application programming Interface) 。 タグ構造である XML にもこの概念は適用可能

参照: DOM ボタンにアクセ ス テキストフォー ムにアクセス

DOM操作 DOM 操作には次のものがある DOM 操作には次のものがある 階層構造の要素を作成し、その要素にアクセス する 階層構造の要素を作成し、その要素にアクセス する もともとある HTML 要素を階段状の構造と捉 え、その要素にアクセスする もともとある HTML 要素を階段状の構造と捉 え、その要素にアクセスする

DOM操作 関数 ( 要素作成 ) 階層構造の要素を作成し、その要素にア クセスを行う 階層構造の要素を作成し、その要素にア クセスを行う ・・・実現するためには、階段状の要素を生成 する関数を知る必要がある

document.createElement(tagName) DOM操作 関数 ( 要素作成 ) 引数:作成するタグ名 ( タグ名なので、 td タグなど、タグ名で 作成した要素の役割が決まる ) 機能:要素を新しく作成する。作成する要 素の種類は、引数のタグ名で設定する

document.createTextNode(tagName) DOM操作 関数 ( 要素作成 ) 引数:作成するテキスト名 ( タグの中身のデータ ) 機能:文字列要素を生成する。生成した要 素を既存のタグ要素に追加すると、タグの 中身の文字列になる ラシキアゼミ

引数:追加する要素 ( 要素を格納した変数でもO K ) 親要素:子要素を追加する要素 DOM操作 関数 ( 要素作成 ) element.appendChild(element) 機能:要素からアクセスして関数を呼び出す。 対象の要素を呼び出し元の要素の子要素と して追加する。 JavaScript で生成した要素を HTML に書 き込む手段として用いる事が出来る

element.setAttribute("src", "xxx.gif"); 引数:1つ目・・・設定する属性名 2つ目・・・設定する属性値 機能:対象の要素に属性と属性値を設定する 。 DOM操作 関数 ( 要素作成 )

var node = document.createElement(“img”) DOM操作 要素の作り方 画像要素を作成 (+ 変数に格納 ) img( 画像 ) 要素 ↓ 生成されたタ グ 変数の格納したほうが扱いやすいので、癖をつ けて下さい。

node.setAttribute(“src”,”owata.jpg”) ; DOM操作 要素の作り方 画像要素を作成 img( 画像)要素 owata.jpg ↓ 生成されたタ グ

DOM 操作 要素の取り出し方 var dom = objects.getElementById(node) var dom = objects.getElementById(node) 引数 (node) :要素を取得したいオブジェクトの id 属 性値 機能:対象のオブジェクト群の中から、引数で指定 した id を持つノード ( 要素 ) を取得する。親要素 objects はファイルの種類によって変わる HTML : document XML : xml のタグを格納した変数 これにより、階層構造の要素をたどらずに、オ ブジェクトの取得が可能になる

var dom = objects.getElementsByTagName(node) var dom = objects.getElementsByTagName(node) 引数 (node) :要素を取得したいオブジェクトのタグ 名 機能:対象のオブジェクト群の中から、引数で指定し たタグ名で定義されたデータをすべて取得する。戻 り値を格納した変数は自動的に配列になる。 基本的に、 XML のデータを格納する際に用いられる。 つまり、親要素 objects は XML のタグを格納した変 数となる。 DOM 操作 要素の取り出し方

HTML 動的書き換えの関数 node.innerHTML(data) node.innerHTML(data) 引数:挿入する要素 ( ノード ) node :内容を書き換える要素 機能: DOM 操作で取得した要素 node の中身を、引 数の要素に書き換える。簡単にいえば、1つ のタグの中身のデータをそのまま入れ替える関 数である。

DOM を用いた HTML の編集 例えば以下のように … テキストフォームを生 成

DOM を用いた HTML の編集 データを取り出す var dom1 = document.myForm.txt1.value var dom1 = document.getElementById(“txt1”).value ・・・ DOM 構造の HTML 部を辿ってデータを取得 ・・・ document オブジェクト以下は、 id 名を指定 すれば一括でデータを取得したい要素を指定でき る

このように、たどってアクセスしていたもの を・・・ ボタンにアクセ ス テキストフォー ムにアクセス DOM を用いた HTML の編集

子オブジェクトに直接アクセスできるようになった。手間が省 ける DOM を用いた HTML の編集

動的書き換えに便利なタ グ タグ タグ ・・・ div タグはタグ自体は効果を持たず、タグで 囲んだ範囲のデータをひとまとまりの要素とし て扱うことが出来るタグ。例えば、データがな い範囲を div タグで囲み、属性をつけて・・・ これを innerHTML 関数の親要素に指定するだけ で JavaScript で操作した要素の挿入先を作るこ とが出来る

これまでの技術を組み合わせる … DOM操作 HTML への組み込み img( 画像)要素 owata.jpg ↓ 格納内容 変数 node ( 画像タグが格納されている )

DOM操作 HTML への組み込み これまでの技術を組み合わせる … div タグを作成し … ↓ 生成されたタ グ var node2 = document.getElementById(“div1”); ・・・作成した div タグを DOM 操作で変数に格 納

node2.appendChild(node) ; // 画像タグを div タグの子要素として追加 DOM操作 HTML への組み込み ↓ 生成されたタ グ img( 画像)要素 owata.jpg JavaScript 内で生成した要素を、 HTML 内に 組み込むことが出来る。

課題1 前回のレクチャーの課題1で作成した XML ファイルを読み込み、要素を出力す る 前回のレクチャーの課題1で作成した XML ファイルを読み込み、要素を出力す る ※出力するのは格納したデータのみでO K。ただし、出力時に、どのゼミの データか分かるようにすること。 ( 例えば、格納されたデータの間に JavaScript で文字列を追加するなど …)

課題2 タグ、 タグ、を生成して、動的に表 を追加するプログラムを作る タグ、 タグ、を生成して、動的に表 を追加するプログラムを作る サンプル

作成手順 課題2 補足 2、 タグを作成し、変数に格納 3、列数分の タグを作成し、それぞ れ変数に格納 1、あらかじめ HTML 部分に タグ のみを定義 (id か name 属性は設定するよ うに )

課題2 補足 4、列にデータを記載したい ( 文字列、オブ ジェクト ) 場合、その要素を作成する 5、4の要素を作成した場合、それを3 ( タグ ) の子要素として追加する

課題2 補足 6、5の要素も含め、すべての td タグを2 ( タグ ) の子要素として追加する 7、 タグをあらかじめ定義した table タグの子要素に追加する

動的な HTML 要素の編集 課題3 ( 仮 ) 文章キーワード変換プログラム 文章の色々なキーワードを動的に変化さ せるプログラム。 サンプル

課題4 これまでの技術 (HTML オブジェクトの取 り出し&編集、 XML 読み込み、 DOM 操 作、 ) を用いて、動的な HTML プログラム を作成しよう これまでの技術 (HTML オブジェクトの取 り出し&編集、 XML 読み込み、 DOM 操 作、 ) を用いて、動的な HTML プログラム を作成しよう 評価ポイント HTML オブジェクトの取り出し、 DOM 操作は最低限入れる HTML オブジェクトの取り出し、 DOM 操作は最低限入れる XML ファイルを反映させたらさらに加 点 XML ファイルを反映させたらさらに加 点 機能性のあるプログラム、コメント 機能性のあるプログラム、コメント