リンク先を取り出すには


おたすけください  2009-04-15 09:33:09  No: 141831

VBでWebBrowser1にページを開いて
そのソースは下のような部分を含んでいて
accesskey.htmを  WebBrowser1.????????で
取り出したいのですが
できないでしょうか

  <a href="accesskey.htm" accesskey="j">ジャンプ(<u>J</u>)</a>

os XP sp3
vb2008 です


魔界の仮面弁士  2009-04-15 11:30:30  No: 141832

マネージの方の WebBrowser だとすれば、Document プロパティが返す HTMLDocument の
Liks プロパティあるいはGetElementByTagName メソッド等を用いて、
該当の a 要素を表す HtmlElement クラスを取得し、そこから
GetAttribute メソッドで "href" の内容を得ることができるかと思います。

ActiveX の方の WebBrowser の場合もほぼ同様で、Document プロパティから
links プロパティ等で a 要素を列挙するなどして、目的の a 要素を捉えれば、
その HTMLAnchorElement オブジェクトの href プロパティで取得できるかと。


おたすけください  2009-04-15 21:37:09  No: 141833

ご返事ありがとうございます

 aa = WebBrowser.Document.Links.Count
でリンクの個数は出てきたんですが

GetElementByTagName メソッド等を用いて、
該当の a 要素を表す HtmlElement クラスを取得し
とは  
aa = .Document.Links.GetElementsByName("href")
ことでしょうか

ActiveX の方の WebBrowser の場合もほぼ同様で、Document プロパティから
links プロパティ等で a 要素を列挙するなどして

すいません  その方法の  ヒントいただけませんか

、目的の a 要素を捉えれば、
その HTMLAnchorElement オブジェクトの href プロパティで取得できるかと。
すいません  初歩しかわかってないもので  ご迷惑かけます


魔界の仮面弁士  2009-04-16 02:12:41  No: 141834

> aa = WebBrowser.Document.Links.Count
> でリンクの個数は出てきたんですが
For Each element As HtmlElement In WebBrowser1.Document.Links
のようにして、各要素を列挙してください。

> aa = .Document.Links.GetElementsByName("href")
GetElementsByName は、
  o = WebBrowser1.Document.GetElementsByName("a")
のように利用します。今回拾いたいのは <a> 要素なので "a" を指定します。

もし、対象要素が <a id="foo" href="〜"> のように「id属性」を持っているなら、
GetElementById メソッドを使って、直接その要素を拾い出すこともできます。

(この他、All プロパティから列挙する方法や、Body などから
 FirstChild/NextSibling を駆使して探し出す方法などもあります)

> ActiveX の方の WebBrowser の場合もほぼ同様で、Document プロパティから
> すいません  その方法の  ヒントいただけませんか
使用している WebBrowser が、System.Windows.Forms.WebBrowser のようなので、
後半の ActiveX 版の解説は、丸ごと無視してください。今回は関係ありません。

もし、ActiveX 版を利用している(通常、AxWebBrowser のような名前になる)なら、
逆に前半の managed WebBrowser の解説の方を無視して頂くことになります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加