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.navigate( "http://canal22.org/sample0005/" ) |
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 |
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 |
PRINT "<#CR>---------------<#CR>" |
nameを指定するパターンでもOK
IE.document.forms[n1].elements[n2]と配列番号で指定していますが、
もちろんnameプロパティから取得した値でも指定可能です。
IE.document.forms[0].onamaeとやればname=onamaeとなっているオブジェクトを
指定可能です。
例えばラジオボタンのオブジェクトの場合、同名のものが複数あるケースが多いので
名前指定時にも配列番号で、細かく特定することができます。
以下のスクリプトで見てみましょう。
IE = CREATEOLEOBJ( "InternetExplorer.Application" ) |
IE.navigate( "http://canal22.org/sample0005/" ) |
UNTIL !IE.busy AND IE.readyState = 4 |
FOR A = 0 TO (IE.document.forms[0].sex.length - 1) |
PRINT "name:" + IE.document.forms[0].sex[A].name |
PRINT "value:" + IE.document.forms[0].sex[A].value |
PRINT "checked:" + IE.document.forms[0].sex[A].checked |
PRINT "defaultChecked:" + IE.document.forms[0].sex[A].defaultChecked |