掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
IFRAMEのオブジェクト取得について (ID:119167)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
昨日は十分な検証をせずに誤爆しまして申し訳ありません さて、単純にID,PassWordは以下で参照或いは設定ができます(確認済み) oIE.document.frames(1).frames(0).document.Forms("loginform").strmemberid.Value 'oIE.document.frames(1).frames(0).document.Forms(0).strmemberid.Value でも可のはず oIE.document.frames(1).frames(0).document.Forms("loginform").strpassword.Value 次にフレームの列挙ですが、昔のNetscape4.7頃にはHPのソースを階層表示できるようになっていて、それをIEのDOMに準じたもので取得できればと作ったものです。 ( VB6 ) 私は本職ではないので、見にくいコードですいません。御参考まで (コードは抜き出して記載していますので、エラーが出るかも知れません) TreeView1とText1(MultiLine,ScrollBarをtrue)を用意 →私の場合、Text1の代わりにタグがカラー表示できるK2Editorへ出力しています。 MSHTML.TBL を参照設定して下さい TreeView1に表示されるノードの表示が FRAME(1)なら oIE.document.frames(1).document.・・・ FRAME(10)なら oIE.document.frames(1).frames(0).document.・・・ FRAME(100)なら oIE.document.frames(1).frames(0).frames(0).document.・・・ で参照できます。 --------------------------------------------------------------------------------- Option Explicit Private oIE As Object Private TreeColl As New Collection Private Sub Form_Load() Set oIE = CreateObject("InternetExplorer.Application") oIE.Navigate2 "http://www.hangame.co.jp/" oIE.Visible = True End Sub Private Sub Form_Unload(Cancel As Integer) Set oIE = Nothing End Sub Private Sub Command1_Click() Call AutoDisplayDOM_Attributes Me.Caption = " " & oIE.LocationName & " ( " & oIE.LocationURL & " )" End Sub Private Sub AutoDisplayDOM_Attributes() Dim NewNode As Node ' 新規コレクション作成 On Error Resume Next If TreeColl.Count > 0 Then Set TreeColl = Nothing End If On Error GoTo 0 Set TreeColl = New Collection ' TreeViewをクリア If TreeView1.Nodes.Count > 0 Then TreeView1.Nodes.Clear End If ' 現在のページ情報をTreeViewに表示 Set NewNode = TreeView1.Nodes.Add(, , "PP", "Parent Page") Set NewNode = TreeView1.Nodes.Add("PP", tvwChild, "PPT", "Tittle") TreeColl.Add oIE.Document.Title, Key:="PPT" Set NewNode = TreeView1.Nodes.Add("PP", tvwChild, "PPU", "URL") TreeColl.Add oIE.Document.URL, Key:="PPU" Set NewNode = TreeView1.Nodes.Add("PP", tvwChild, "PPH", "HTML") TreeColl.Add oIE.Document.documentElement.outerHTML, Key:="PPH" NewNode.EnsureVisible Set NewNode = Nothing ' フレーム情報をTreeViewに表示 If oIE.Document.Frames.Length Then Set NewNode = TreeView1.Nodes.Add(, , "FP", "Frames") Call FindFrames(oIE.Document, "FP", "") End If End Sub Private Sub FindFrames(oDoc As HTMLDocument, TreeParent As String, NodeNumbr As String) Dim Fcnt As Byte, i As Byte, shtml As String Fcnt = oDoc.Frames.Length Dim NewNode As Node ' 現フレーム情報の列挙 On Error Resume Next For i = 0 To Fcnt - 1 Set NewNode = TreeView1.Nodes.Add(TreeParent, tvwChild, "F" & NodeNumbr & i, "FRAME(" & NodeNumbr & i & ")") 'タイトル Set NewNode = TreeView1.Nodes.Add("F" & NodeNumbr & i, tvwChild, "F" & NodeNumbr & i & "T", "Tittle") TreeColl.Add oDoc.Frames(i).Document.Title, Key:="F" & NodeNumbr & i & "T" ' URL Set NewNode = TreeView1.Nodes.Add("F" & NodeNumbr & i, tvwChild, "F" & NodeNumbr & i & "U", "URL") TreeColl.Add oDoc.Frames(i).Document.URL, Key:="F" & NodeNumbr & i & "U" ' htmlテキスト Set NewNode = TreeView1.Nodes.Add("F" & NodeNumbr & i, tvwChild, "F" & NodeNumbr & i & "H", "HTML") shtml = oDoc.Frames(i).Document.documentElement.outerHTML TreeColl.Add shtml, Key:="F" & NodeNumbr & i & "H" ' サブフレームを確認 If oDoc.Frames(i).Length > 0 Then Call FindFrames(oDoc.Frames(i).Document, "F" & NodeNumbr & i, NodeNumbr & i) End If ' ノードを展開 NewNode.EnsureVisible Next i End Sub Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) On Error Resume Next 'Debug.Print TreeColl.Item(Node.Key) Text1 = TreeColl.Item(Node.Key) End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.