• ベストアンサー
  • 暇なときにでも

javascriptで作成されたIDとpasswordでログイン後の画面:LocationURLでURLを取得できません。

  • 質問No.2468694
  • 閲覧数372
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 74% (185/247)

VBはまったくの初心者なのですが、あるプログラムツールでIEを操作するプログラムを作っています(この言語ではactiveXと連携できる機能があります。)。

一般的なWebページのURLはLocationURLプロパティを問い合わせることで、取得できるところまではいったのですが、IDとパスワードを入力してログインするあるページだとこのやり方で取得できません(https://aaa.bbb.ccc.jp/と最上部のアドレスが表示されるのみ。)。ただし、マウスで右クリックしてプロパティを選択するとちゃんとしたURLが分かりますので(https://aaa.bbb.ccc.jp/head.ssn?server_id=abc&id=AAAABBBBCCCCDDDDEEEE11122223333のようになります。)、どうも意図的にLocationURLを用いて取得できないようにしてあるようです。この画面がjavascriptで作られているようなのですが、実際このように隠すことができるのでしょうか。

もし、この推測が正しいとして、VB、activeXのプロパティ、メソッドを使用してページのURLを取得する方法は無いでしょうか。

このページのソースも見れます。しかし、どれがセキュリティ的に開示しないほうがいいのか分からないのでとりあえず載せていません。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 62% (785/1258)

こんにちは。KenKen_SP です。

情報不足で現状がさっぱりわかりません。情報を出し惜しみしていては回答
はもらい難いですよ。

> javascriptで作られているようなのですが、実際このように隠すことが
> できるのでしょうか。

> https://aaa.bbb.ccc.jp/?と最上部のアドレスが表示されるのみ

単純にフレームページなのだと思います。この場合ブラウザにはフレームを
切っている...HTML タグで言えば、FRAMESET が書かれたページの URL しか
表示されません。

現在どのような方法で LocationURL を取っているのか知りませんが、IE
オブジェクトを使っていると仮定し、VB で書けばこんな感じでフレーム毎
の URL や HTMLソースなんかは取得できます。

同じくフレームページの MSDN をサンプルにしてます。このページは 3つ
の Document で構成されてます。

...エラー処理は皆無なのできちんと作ってません。(;´・ω・`)σ

間違いがあったり、意図の読み違いだった場合はスルーして下さい。では。

Sub Sample()
  
  Dim IE  As Object
  Dim n  As Long
  Dim i  As Long
  Dim Url As String
  
  Const READYSTATE_COMPLETE = 4
  
  Url = "http://msdn.microsoft.com/library/ja/"
  
  Set IE = CreateObject("InternetExplorer.Application")
  With IE
    .Visible = True
    .Navigate Url
    While .Busy Or .ReadyState <> READYSTATE_COMPLETE
    Wend
    n = IE.Document.frames.Length
    Debug.Print "【 Frames Count 】 " & CStr(n)
    For i = 0 To n - 1
      With IE.Document.frames(i).Document
        Debug.Print "--------------------------------"
        Debug.Print "【 Document URL 】 " & .Url
        Debug.Print "--------------------------------"
        Debug.Print "【 Document Source 】"
        Debug.Print .documentElement.outerHTML
      End With
    Next
  End With

End Sub
お礼コメント
daipot

お礼率 74% (185/247)

ご回答ありがとうございます。ご指摘のとおり、フレームページでした。documentElement.outerHTMLでアドレスの残りの部分が得られました。
投稿日時:2006/10/15 11:52
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

ピックアップ

ページ先頭へ