IE.document.forms.elementsから取得できるエレメントの情報

IE.document.forms.elementsからエレメントの情報取得が行えます。
formsというフォームオブジェクトの中には
入力項目等を備えたelementsオブジェクトがあります。
テキストボックスやセレクトボックスなどの各入力項目から
以下のような情報が取得できます。

エレメント

エレメントの総数
IE.document.forms[n].elements.length

エレメントのオブジェクト(フォーム、エレメントともにnに0からの数値を指定)

タイプ
IE.document.forms[n1].elements[n2].type
※selectボックスは”select-one”と取得
名前
IE.document.forms[n1].elements[n2].name
IE.document.forms[n1].elements[n2].value

チェック状態(true=チェック有り、false=チェック無し)
IE.document.forms[n1].elements[n2].checked
checkboxやradioボタンから取得します

クラス名
IE.document.forms[n1].elements[n2].className
id
IE.document.forms[n1].elements[n2].id
uniqueID
IE.document.forms[n1].elements[n2].uniqueID
フォーカス順序(Tabでの移動順)
IE.document.forms[n1].elements[n2].tabIndex
タグ名
IE.document.forms[n1].elements[n2].tagName
クラス名
IE.document.forms[n1].elements[n2].className
セレクトボックス固有のオブジェクト

selectボックスはその中にoptionsオブジェクトがあり、
選択肢の情報を有しています。

選択されているインデックス

IE.document.forms[n1].elements[n2].selectedIndex

選択肢の数(elementsではselectボックスを選択)

IE.document.forms[n1].elements[n2].options.length

選択肢の表示名

IE.document.forms[n1].elements[n2].options[n3].text

選択肢の値

IE.document.forms[n1].elements[n2].options[n3].value

初期選択値か否か(true=初期選択値、false=初期選択値ではない

IE.document.forms[n1].elements[n2].options[n3].defaultSelected

インデックス(0からの番号)

IE.document.forms[n1].elements[n2].options[n3].index

選択状態(true=選択されている、false=選択されていない)

IE.document.forms[n1].elements[n2].options[n3].selected

チェックボックス、ラジオボタン固有のオブジェクト

チェックされているか(true=チェックされている、false=チェックされていない

IE.document.forms[n1].elements[n2].checked

初期状態でチェックされているか(true=チェックされている、false=チェックされていない

IE.document.forms[n1].elements[n2].defaultChecked

というわけで、
具体的にスクリプトを実行させて、結果を見てみましょう。

実行時のイメージ動画は下記の通りです。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("http://canal22.org/sample0005/")

REPEAT
 SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4

FOR n = 0 TO (IE.document.forms.length -1)

 PRINT "<" + (n+1) + "目のフォーム><#CR>"

    PRINT "■エレメントの数:" + IE.document.forms[n].elements.length + "<#CR>"
    PRINT "  エレメントのタイプと名前と値:<#CR>"
    PRINT "  └(type) IE.document.forms[n].elements[i].type"
    PRINT "  └(name) IE.document.forms[n].elements[i].name"
    PRINT "  └(value) IE.document.forms[n].elements[i].value"
    PRINT "  └(checked) IE.document.forms[n].elements[i].checked"
  FOR i = 0 TO (IE.document.forms[n].elements.length -1)
    PRINT "    └(type:name) " + IE.document.forms[n].elements[i].type + ":" + IE.document.forms[n].elements[i].name
    PRINT "      └(value) " + IE.document.forms[n].elements[i].value
    PRINT "      └(className) " + IE.document.forms[n].elements[i].className
    PRINT "      └(id) " + IE.document.forms[n].elements[i].id
    PRINT "      └(uniqueID) " + IE.document.forms[n].elements[i].uniqueID
    PRINT "      └(tabIndex) " + IE.document.forms[n].elements[i].tabindex
    PRINT "      └(tagName) " + IE.document.forms[n].elements[i].tagName

      //セレクトボックスの情報を取得
      IFB IE.document.forms[n].elements[i].type = "select-one"
       PRINT "      └(selectedIndex) " + IE.document.forms[n].elements[i].selectedIndex
       FOR cin = 0 TO (IE.document.forms[n].elements[i].options.length - 1)
       PRINT "        └(options.text) " + IE.document.forms[n].elements[i].options[cin].text
       PRINT "        └(options.value) " + IE.document.forms[n].elements[i].options[cin].value
       PRINT "        └(options.defaultSelected) " + IE.document.forms[n].elements[i].options[cin].defaultSelected
       PRINT "        └(options.index) " + IE.document.forms[n].elements[i].options[cin].index
       PRINT "        └(options.selected) " + IE.document.forms[n].elements[i].options[cin].selected
       NEXT

      ENDIF

      //チェックボックスの情報を取得
      IFB IE.document.forms[n].elements[i].type = "checkbox" OR IE.document.forms[n].elements[i].type = "radio"
       PRINT "      └(checked) " + IE.document.forms[n].elements[i].checked
       PRINT "      └(defaultChecked) " + IE.document.forms[n].elements[i].defaultChecked
      ENDIF

  NEXT
  PRINT "<#CR>---------------<#CR>"

NEXT

nameを指定するパターンでもOK

IE.document.forms[n1].elements[n2]と配列番号で指定していますが、
もちろんnameプロパティから取得した値でも指定可能です。
IE.document.forms[0].onamaeとやればname=onamaeとなっているオブジェクトを
指定可能です。
例えばラジオボタンのオブジェクトの場合、同名のものが複数あるケースが多いので
名前指定時にも配列番号で、細かく特定することができます。
以下のスクリプトで見てみましょう。


続きは、ログインもしくは、登録してください



このページの先頭へ