[リストへもどる]
一括表示

投稿時間:2004/01/16(Fri) 13:38
投稿者名:ボラージュ
URL :
タイトル:
インライン フレーム(iframeエレメント)からのDocument取得について
いつもこの掲示板にはお世話になっています

IEコンポーネントを利用したブラウザに表示されている情報の取得をしています。
フレームを利用しているページの対応について、以前に書込まれてた記事を参考にさせていただきました。
その際、インラインフレーム(iframe)を利用してるサイトでHTMLDocumentを取得やフレーム数の取得時にエラーが発生してしまうことがありDocumentをうまく取得することが出来ません

If IEdocument(0).frames.Length > 0 And IEdocument(0).getElementsByTagName("IFRAME").Length < 0 Then

現在は上の条件式でiframeを回避して動作させているのですが
確実に取得する方法があるのならば教えていただけないでしょうか

よろしくお願いします

投稿時間:2004/01/16(Fri) 15:21
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: インライン フレーム(iframeエレメント)からのDocument取得について
過去の投稿を見られたのなら No.3877 や No.3882 のサンプルを利用したのでは
だめだったのでしょうか?

投稿時間:2004/01/16(Fri) 16:02
投稿者名:ボラージュ
URL :
タイトル:
Re^2: インライン フレーム(iframeエレメント)からのDocument取得について
> 過去の投稿を見られたのなら No.3877 や No.3882 のサンプルを利用したのでは
> だめだったのでしょうか?

早速のレスありがとうございます
過去の投稿サンプルは試しましたが、HTMLDocument取得は出来ませんでした
通常のフレームページに関してはサンプルを参考に再帰取得まではしていませんがフレームの中のフレームページの対応はしています。

If IEdocument(0).frames.Length > 0 And IEdocument(0).getElementsByTagName("IFRAME").Length < 0 Then
    For j = 0 To IEdocument(0).frames.Length - 1
        Set IEdocument(docnum) = IEdocument(0).frames.Item(j).Document
        docnum = docnum + 1

        If IEdocument(docnum - 1).frames.Length > 0 Then
            docback = docnum - 1
            For l = 0 To IEdocument(docback).frames.Length - 1
                Set dIEdocument(docnum) = IEdocument(docback).frames.Item(l).Document
                docnum = docnum + 1
            Next
        End If

    Next
End If

このようなやり方でフレーム別のDocument取得をしていますが、この方法ではIFRAMEのDocumet取得時にエラーが発生してしまうことがあります。

投稿時間:2004/01/23(Fri) 11:15
投稿者名:ボラージュ
URL :
タイトル:
Re^3: インライン フレーム(iframeエレメント)からのDocument取得について
> > 過去の投稿を見られたのなら No.3877 や No.3882 のサンプルを利用したのでは
> > だめだったのでしょうか?
>
> 早速のレスありがとうございます
> 過去の投稿サンプルは試しましたが、HTMLDocument取得は出来ませんでした
> 通常のフレームページに関してはサンプルを参考に再帰取得まではしていませんがフレームの中のフレームページの対応はしています。
>
> If IEdocument(0).frames.Length > 0 And IEdocument(0).getElementsByTagName("IFRAME").Length < 0 Then
>     For j = 0 To IEdocument(0).frames.Length - 1
>         Set IEdocument(docnum) = IEdocument(0).frames.Item(j).Document
>         docnum = docnum + 1
>
>         If IEdocument(docnum - 1).frames.Length > 0 Then
>             docback = docnum - 1
>             For l = 0 To IEdocument(docback).frames.Length - 1
>                 Set dIEdocument(docnum) = IEdocument(docback).frames.Item(l).Document
>                 docnum = docnum + 1
>             Next
>         End If
>
>     Next
> End If
>
> このようなやり方でフレーム別のDocument取得をしていますが、この方法ではIFRAMEのDocumet取得時にエラーが発生してしまうことがあります。

見当違いの返事申し訳ありません
記事番号を勘違いしていました、サンプルを見直して見ます