GETOLEITEMを使わずitemで指定して要素を操作する

GETOLEITEMを使わずitemで指定して要素を操作する


obj = IE.document.getElementsByTagName(タグ名)
obj.item(N)

itemで要素を指定する

以下の様な構造のWebページにあるh4の要素を取得する場合、
GETOLEITEMを使わず、itemで番号を指定する方法も利用可能です。

<h1>Hello H1</h1>
<div id="mainCentric">
<h4>Yes! This is a pen.</h4>
<h4>No! No! No! This is not a pencil.</h4>
<p>Get some objects!</p>
<p>Then you go home!</p>
</div>

lengthで要素の数を取得できますので、itemで1つ1つ番号を指定することができます

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://canal22.org/sample0013/")
REPEAT
  SLEEP(0.1)
UNTIL !IE.busy AND IE.readyState = 4

h4Tag = IE.document.getElementsByTagName("h4")
FOR A = 0 TO (h4Tag.length - 1)
 PRINT h4Tag.item(A).innerText
NEXT

指定した要素はinnerText、innerHTMLどちらも使えますし、値の変更も可能です。

下記のスクリプトで、要素を取得して視覚的に分かりやすくログ出力した上で
取得後の要素を書き換えています。
以下のような書き方になります。

この投稿の続きを読む »

タグ

2013年2月14日 | コメントは受け付けていません。 |

カテゴリー:UWSCとInternetExplorer

指定したタグの中を変更する

指定したタグの中を変更する


obj = IE.document.getElementsByTagName(タグ)
obj.innerText = 新しいテキスト
obj.innerHTML = 新しいHTML

指定したタグの中を変更する

同じく以下の様な構造のWebページがあります。

<h1>Hello H1</h1>
<div id="mainCentric">
<h4>Yes! This is a pen.</h4>
<h4>No! No! No! This is not a pencil.</h4>
<p>Get some objects!</p>
<p>Then you go home!</p>
</div>

getElementsByTagNameで指定したタグを取得し、中を変更します。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://canal22.org/sample0013/")
REPEAT
  SLEEP(0.1)
UNTIL !IE.busy AND IE.readyState = 4

h4Tag = IE.document.getElementsByTagName("h4")
FOR A = 0 TO (GETOLEITEM(h4Tag)-1)
 ALL_OLE_ITEM[A].innerText = "書き換えました。"
NEXT

innerHTMLで新たなタグを挿入

innerHTMLにタグを指定した文字列をセットすることも可能です。
スクリプトは以下のようになります。

この投稿の続きを読む »

タグ

2013年2月9日 | コメントは受け付けていません。 |

カテゴリー:UWSCとInternetExplorer

指定したidの中を変更する

指定したidの中を変更する


obj = IE.document.getElementById(ID名)
obj.innerText = 新しいテキスト
obj.innerHTML = 新しいHTML

指定したidの中を変更する

例えば以下の様な構造のWebページがあったとします。idを指定されたいくつかのタグで構成されています。

<p id="res1">The Capital is in Tokyo</p>
<p id="res2">Gold is just a Gold</p>
<p id="res3">You are fine!</p>
<ul id="fruit">
 <li>Banana</li>
 <li>Fig</li>
 <li>Apple</li>
</ul>
<ul id="fruit">
 <li>Kaki</li>
 <li>Lemon</li>
 <li>Cherry</li>
</ul>

getElementByIdでIDを指定することで該当のオブジェクトを取得できますので、そのオブジェクトのinnerTextやinnerHTMLに値をセットすることでIDの中を変更できます。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://canal22.org/sample0014/")
REPEAT
  SLEEP(0.1)
UNTIL !IE.busy AND IE.readyState = 4

objId = IE.document.getElementById("res2")
objId.innerText = "お金はただのお金です"
PRINT "res2:日本語に変更します"
objId = IE.document.getElementById("res3")
objId.innerHTML = "<font color=red><strong><em>" + objId.innerText + "</em></strong></font>"
PRINT "res3:装飾します"

同名IDが複数ある場合は

上記のWebページではid=”fruit”と指定されている箇所が複数あります。
この場合にgetElementById(“fruit”)で指定したオブジェクトを変更するとどうなるでしょうか
スクリプトは以下のようになります。

この投稿の続きを読む »

タグ

2013年2月4日 | コメントは受け付けていません。 |

カテゴリー:UWSCとInternetExplorer

指定したidの中を取得する

指定したidの中を取得する


obj = IE.document.getElementById(ID名)
obj.innerText
obj.innerHTML

指定したidの中を取得する

例えば以下の様な構造のWebページがあったとします。idを指定されたいくつかのタグで構成されています。

<p id="res1">The Capital is in Tokyo</p>
<p id="res2">Gold is just a Gold</p>
<p id="res3">You are fine!</p>
<ul id="fruit">
 <li>Banana</li>
 <li>Fig</li>
 <li>Apple</li>
</ul>
<ul id="fruit">
 <li>Kaki</li>
 <li>Lemon</li>
 <li>Cherry</li>
</ul>

getElementByIdでIDを指定することで該当のオブジェクトを取得できますので、それに対してinnerTextやinnerHTMLを実行することでIDの中が取得できます。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://canal22.org/sample0014/")
REPEAT
  SLEEP(0.1)
UNTIL !IE.busy AND IE.readyState = 4

objId = IE.document.getElementById("res1")
PRINT "res1:" + objId.innerText
objId = IE.document.getElementById("res2")
PRINT "res2:" + objId.innerText
objId = IE.document.getElementById("res3")
PRINT "res3:" + objId.innerText

同名IDが複数ある場合は

上記のWebページではid=”fruit”と指定されている箇所が複数あります。
idは1ページに内に1つ(一意)であることが望ましいため、理想的な状況ではありませんが、
この場合にgetElementById(“fruit”)を指定するとどうなるでしょうか。
スクリプトは以下のようになります。

ちなみにgetElementByIdは単数取得を前提としており、複数取得できるgetElementsByTagNameと異なり、複数形のsが無い点に注意です。

この投稿の続きを読む »

タグ

2013年1月30日 | コメントは受け付けていません。 |

カテゴリー:UWSCとInternetExplorer

指定したタグの中身を取得する

指定したタグの中身を取得する


obj = IE.document.getElementsByTagName(タグ名)
GETOLEITEM(obj)
ALL_OLE_ITEM[N].innertHTML
ALL_OLE_ITEM[N].innertText obj.length

指定したタグの中身を取得する

以下の様な構造のWebページがありますのでh4タグの中身を取得してみましょう

<h1>Hello H1</h1>
<div id="mainCentric">
<h4>Yes! This is a pen.</h4>
<h4>No! No! No! This is not a pencil.</h4>
<p>Get some objects!</p>
<p>Then you go home!</p>
</div>

HTMLで取得する場合はinnerHTML、中のテキストを取得する場合はInnerTextを使います。
getElementsByTagNameで取得したオブジェクトをGETOLEITEM関数に渡す処理を行います。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://canal22.org/sample0013/")
REPEAT
  SLEEP(0.1)
UNTIL !IE.busy AND IE.readyState = 4

pTag = IE.document.getElementsByTagName("h4")

GETOLEITEM(pTag)
PRINT ALL_OLE_ITEM[0].innerText

GETOLEITEMを実行すると、取得したオブジェクトの中がALL_OLE_ITEMに移されますので、ALL_OLE_ITEMを操作します
上のスクリプトではALL_OLE_ITEMの1番目(=0)のオブジェクトのinnerTextを取得しています。

pタグの中身を取得する

次のスクリプトでは、pタグを取得し、全ての中身を書き出しています。
GETOLEITEMを実行することにより要素数を取得できますので、順番にinnertTextやinnertHTMLで取得していきます。
スクリプトは下記のようになります。(見て分かりやすい様にハイフン、改行を施しています)

この投稿の続きを読む »

タグ

2013年1月24日 | コメントは受け付けていません。 |

カテゴリー:UWSCとInternetExplorer

このページの先頭へ