トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
JScript
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ DOM




___

■ DOM.とは

DESC DOM は Document Object Model の略 HTML や XML で記述された各要素を取り扱うための標準インタフェースとして定義され 各言語からアクセスできる。 WARNING これはブラウザがホストとして実行した時に扱えるオブジェクトであり wscript, cscript の扱う対象ではない。
___

■ とりあえず使ってみる

DESC HTML の各要素は Node として階層構造をもつので, その参照をとって各操作をすることで, Document の内容を動的に制御する
< script type="text/javascript">
< !--
  function func() {

    // < img> タグをつくる
    var oImg = document.createElement('img');

    // Attribute を指定する
    oImg.setAttribute("src", "icon.gif");

    // setAttribute の代わりに直接 Property を指定する
    oImg.src = "icon.gif";

    // 子供に指定する
    // Node は id で検索できる
    var oDiv = document.getElementById("test");
    oDiv.appendChild( oImg );

  }
// -->
< /script>
< !-- OK をおすと 画像がでます -->
    < div id="test">< /div>
    < input type="button" value="OK" onclick="func()">
___

■ Object.の.property.をしらべる

POINT Node を操作するには, Node の Property, Method を知る必要がある JavaScript の for - in を利用すれば Property, Method 一覧を取得できる コールバックなども Property として存在する。

    // Property を d:/prop.txt へ出力
    // IE で動作することを確認
    < div id="test">test< /div>

    < script type="text/javascript">
    // for 文で Object の property 名を取得する
    var o = document.getElementById("test");
      
    var fs = new ActiveXObject("Scripting.FileSystemObject");
    var fp = fs.OpenTextFile("d:/prop.txt", 2, true );
  
    var s;
    for ( s in o ) {
      fp.WriteLine( s );
   }
   fp.Close();
   < /script>

___

■ Form

つくるには < form> の子に配置して name でたどる
    < script>

    function test()
    {
      alert("ボタンを押した");
    }  

    < /script>

    < form name="test">
    < button onClick="test()">
    < /form>

___

■ Form.を利用して簡単な足し算をしてみる

A [ ] B [ ] [=] 結果[ ] < script type="text/javascript"> < !-- function func() { var a = parseFloat(document.F1.T1.value); var b = parseFloat(document.F1.T2.value); document.F1.T3.value = a + b; } // --> < /script> < form name="F1" action="#"> < input type="text" name="T1"> < input type="text" name="T2"> < input type="button" value="=" onclick="func()"> < input type="text" name="T3"> < /form> POINT form の値をとるには document.F1.T1.value といった階層をたどれば OK form に名前( ID )をつけておくこと var xx = parseFloat(document.F1.T1.value);
___

■ Form.におこる.Event.をフックする

↑ですでに [ Button を押したとき ] といった Event を Hook する * 他にもいろいろ SYNTAX window.document.form.handleEvent( Form 属性 )
___

■ Object

___

■ Node.Object

POINT オブジェクト志向なので, 各ノードはクラス階層をもつ。 各ノードは階層構造をもち, 名前, id などの共通の属性をもつ
    // 階層を参照する
    element.childNodes      ( 自分の直下の子供のリスト )

    element.parentNode
    element.firstChild
    element.lastChild 
    element.previousSibling
    element.nextSibling
WARNING プロパティとしてアクセスすること。
    var a = obj.childNodes;
___

■ window.Object

POINT 階層の最上位のノード そのため省略をできる POINT 子供には以下がいる document、image、form、history、location
    メソッド  プロパティ
    alert( msg )  アラーとメッセージの表示
    blur  ウィンドウを背面に移動させる。
    clearInterval(timer)  インターバルタイマーの解除
    clearTimeout(timer)  タイマーの解除
    close  ウィンドウを閉じる。
    confirm(value)  確認ダイアログの表示
    focus  ウィンドウにフォーカスをあてる。
    home  ホームページへ移動
    moveBy(x, y)   x, y で移動量を指定してウィンドウを移動させる。 
    moveTo(x, y)   x, y で座標を指定してウィンドウを移動させる。 
    open([url,] [name,] [option])   ウィンドウを開く
    print  印刷
    prompt(value)  文字入力形式のダイアログを開く。
    resizeBy(x, y)   x, y で移動量を指定してウィンドウサイズを変更 
    resizeTo(x, y)   x, y で指定したサイズにウィンドウをリサイズ。 

    // スクロール
    scrollBy(x, y)   x, y で移動量を指定してページをスクロール。 
    scrollTo(x, y)    絶対値で指定した位置へスクロール  (  x(左端), y(右下) )

    setInterval(action, interval)   一定時間間隔に action をよびだす
    setTimeout(action, time)   一定時間後に action をよびだす
    stop  読み込み中止
    // 現在のページを移動させる
    window.location.href = "http://google.com";

  // 登録する

  < body>
  < script>
  setTimeout( function(){ setPosition() },500 );

// 2 秒ごとに起動する
  setInterval( function(){ alert("call timer"); },2000 );
  < /script>
  < /body>
WARNING IE では 次のように指定すると handler が起動しなくなる
    setInterval( moveDiv(), 2000 );

    // 再度指定してもダメ
    setInterval( function(){ moveDiv() }, 100 );
___

■ Document.Object

property
    cookie

    // ドキュメントの URL  ( http://domain/foo/bar.htm )
    // WARNING  
    //    参照だけで設定はできない. 設定する時は window.location.href を使う
    URL

    // Title
    title
    
    // body 
    body


  // id で検索
  var root = document.getElementById( "root" );

  // 要素を作成( create )する
  document.
  function addElement() {  
      // tag 名を指定して作成する
      var o = document.createElement('div');  

      o.id = "id";  
      o.innerHTML = "hoge";  
      o.style.backgroundColor = 'red';  
    
      var objBody = document.getElementsByTagName("body").item(0);  
      objBody.appendChild(element);  
      // body要素にdivエレメントを追加  
  }  

___

■ document.getElementById(id)

DESC id 属性で指定した名前で要素を参照します oElement = document.getElementById("id1");
function func2()
{
  // id=imgA  をとって 
  var img = document.getElementById( "imgA" );
  alert( img.getAttribute("src") );
}

< body>
< img id="imgA" src="imgA.bmp">
< input type="button" value="OK" onclick="func2()">
< /body>

___

■ getElementsByTagName

DESC tag名で検索する。 SYNTAX Array getElementsByTagName( name )
  // < ul> タグをすべて取得する。 Array Object がかえる。
  var a = root.getElementsByTagName("ul");

  // 要素数 と 各要素
  a.length;
  a[0];
___

■ element.getElementsByName(name)

name 属性で指定した名前で要素リストを参照します oElements = document.getElementsByName("namae"); oElements = oElement.getElementsByName("namae");
  // < ul> をすべて取得
  var a = root.getElementsByTagName("ul");
function func4()
{

  // id=imgB  をとって 
  var img = document.getElementById( "imgB" );
  alert( img.getAttribute("src") );

}


< body>
< img id="imgA" src="imgA.bmp">
< input type="button" value="OK" onclick="func2()">
< /body>

___

■ element.getElementsByName(name)

DESC name 属性で指定した名前で要素リストを参照します oElements = document.getElementsByName("namae"); oElements = oElement.getElementsByName("namae");
___

■ StyleSheet.を操作する

SYNTAX obj.style.property obj.className DESC DOM ( Script ) から StyleSheet を設定する。 POINT property 名は StyleSheet 名と対応づいている
    // css    < ->   DOM
    font-size < -> fontSize
    
    var o = document.getElementsById( "test" );

    o.style.fontSize = "smaller";
    o.style.display  = "none";
class 全体を変更するには className プロパティを変更する。
    o.className = "red";
    o.className = "green";


NINJAIDX 1