IEのHTML要素をキーワード検索してValueを設定する[vbs]

InternetExplorer のHTML要素にValueを設定するFunctionを考えてみる。

ページ要素の分析とか対象の要素に合わせたカスタマイズをページ毎に考えるのがめんどいから、これ一つあればとりあえず値の設定はできそーだろってやつを作ってみる。textarea、input、select要素への値の設定を1つのFunctionでできるように関数を組んでみました。

 

まずは、ざっと考えたコードを紹介。

 

以下の3つの関数を作ってます。

  • Sub SetValueToIE(ie, keyArgs, val)
  • Function CollectElementsFromKeywords(doc, keyArgs, aryElm)
  • Function SerchElementsFromKeywords(doc, keyArgs, aryElm)

やろうとしてることのメインはSetValueToIEで、ieにはCreateObjectで作ったieか、getObjIEで取得したieをセット。keyArgsには配列で値を設定したい要素のタグに含まれるキーワードを複数入れる。valには設定したい値を入れる。

ieのHTML要素はiframeタグで区切られて一発で取得できない可能性があるから、 CollectElementsFromKeywords関数を使って再帰的にiframe要素のdocumentも検索する。

で、検索対象にしたdocumentに対してSerchElementsFromKeywords関数で指定キーワードを全て含む入力系要素がないかを検査してエレメント参照を全部 取得してくるという作り。入力系要素としては、”textarea”, “input”, “select”, “button”を対象にしている。(buttonが含まれているのは、この機能を使いまわしてClickイベント送る機能とか作る為。)

入力中のキーワードでの要素の誤検出を防ぐ為、OuterHTMLからInnerTextを置換で削除してからキーワード検査する。

で、取得したエレメントがtextareaだったらInnerText、それ以外だったらValueにvalを設定。複数検出されてたらダイアログ出して全部に設定するかキャンセルするか確認する・・・みたいな。

「IEのHTML要素をキーワード検索してValueを設定する[vbs]」への1件のフィードバック

Leave a Reply

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

Related Post