日本の情報発信基地

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

 
UWSC

スポンサーリンク

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となっているオブジェクトを
指定可能です。
例えばラジオボタンのオブジェクトの場合、同名のものが複数あるケースが多いので
名前指定時にも配列番号で、細かく特定することができます。
以下のスクリプトで見てみましょう。

 

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 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
NEXT
スポンサーリンク

http://canal22.org/advance/ie/ie-document-forms-elements-propertie/

スポンサーリンク

- Comments -

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Copyright© ヒカルの情報ブログ , 2018 All Rights Reserved.