投稿日 | : 2003/04/02(Wed) 02:58 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re^5: IEオブジェクトのDocumentオブジェクトについて |
> 再帰化以外に関しては解決したと思われるのですがやはり再帰化でHTMLコードの全文が取得できません。
あれ? 元質問では、『テキスト全てを参照したい』とあったので、
HTMLのテキストノードの内容を調べたい、という意味かと思ったのですが…
今度は『HTMLコードの全文』を取得したいという事になっていますね。(^^;)
テキストノードの内容を取得したいという意味なら、最初に提示された「outerTextプロパティ」でOKですよ。
(内側のテキストを取得するなら、「innerTextプロパティ」ですね)
ちなみに、フレーム組みのページの時にタイトル部しか表示されなかったのは、HTMLが
<html>
<head>
<title>フレームテスト</title>
</head>
<frameset cols="50%,*">
<frame src="frame1.htm" name="frame1">
<frameset rows="50%,*">
<frame src="frame2.htm" name="frame2">
<frame src="frame3.htm" name="frame3">
</frameset>
</frameset>
</html>
のような構造だからです。テキストノードが title部しか無いわけですね。
# 実際には、noframesにテキストノードが含まれる事もありますが、
# innerTextプロパティは、noframes内部のテキストノードを無視します。
> また、WIDNOWオブジェクト内のどのプロパティにHTMLが入っているのかがわかりませんでした。
先に回答しましたように、『windowオブジェクトのdocumentプロパティ』で、
「(DHTMLでいうところの)documentオブジェクト」が取得されます。
documentオブジェクトさえ取得できれば、あとは、.all(0).innerText でテキストノードの内容を取得したり、
.documentElement.outerHTML で、現在解析されているHTMLの構造を文字列として取得したり、
.body.styleオブジェクトを書き換えて、HTML文書の色を変えたりする事ができますよ。
> そもそもIEオブジェクトに対しての理解が余りありません。
「InternetExplorerオブジェクト」に対する理解は、そこそこあるように見受けられました。
不足しているとすれば、それはおそらく Dynamic HTML(というか、MSHTML)に対する知識だと思います。
例えば、何度も話題に上がった「documentオブジェクト」ですが、
それが持つメソッドやプロパティやコレクションは、以下のようになります。(英語情報です)
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/obj_document.asp
英語版が読みづらいようであれば、日本語版を一緒に参照されると良いかも知れません。
(ただし日本語版は、IE4当時から更新されていないので、情報としてはかなり古いです)
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpisdk/dhtml/doc_object/doc_object.htm
> お手数おかけいたしますがサンプルコードで教えて頂けると非常にあり難いです。
再起処理の部分に付いていえば、単純にはこんな感じですかね。
Private Sub test(ByVal ieDoc As Object)
If ieDoc Is Nothing Then
Exit Sub
End If
If ieDoc.frames.length = 0 Then
Debug.Print ieDoc.documentElement.outerHTML
Else
Dim n As Long
For n = 0 To ieDoc.frames.length - 1
test ieDoc.frames.item(n).document
Next
End If
End Sub