■ WebBrowserで開いたページの書き換え

[Visual Basic 初心者掲示板] [過去ログの一覧]


じゅんてん 2008/02/08(金) 09:23:04
VB2005でWebBrowserで開いたページのリンクにTarget="_blank"を付加したいのですがうまく出来ず悩んでおります。

ソース部分の
href="http://XXXXXX.com" 
↓↓↓↓↓
href="http://XXXXXX.com" Target="_blank

のようにしたいのですがご存知の方いましたら
お教え頂けないでしょうか?

魔界の仮面弁士 2008/02/08(金) 13:37:24 <常連>
DocumentCompleted あたりで…。

Dim wb As WebBrowser = DirectCast(sender, WebBrowser)
For Each a As HtmlElement In wb.Document.GetElementsByTagName("A")
 a.SetAttribute("target", "_blank")
Next

じゅんてん 2008/02/08(金) 19:51:43
お返事ありがとうございました。
<A http://www.yahoo.co.jp/">ヤフー</A>
のようなページで試したところエラーはでないのですが、ソースが変更されることはありませんでした。

もう少し悩んでみます。

魔界の仮面弁士 2008/02/08(金) 20:21:31 <常連>
> ソースが変更されることはありませんでした。
これでどうでしょう。


Private Sub WebBrowser1_DocumentCompleted( _
    ByVal sender As Object, _
    ByVal e As WebBrowserDocumentCompletedEventArgs _
) Handles WebBrowser1.DocumentCompleted

    Dim wb As WebBrowser = DirectCast(sender, WebBrowser)
    For Each a As HtmlElement In wb.Document.GetElementsByTagName("A")
        a.SetAttribute("target", "_blank")
    Next

    RichTextBox1.Text = wb.DocumentText

    Dim doc As Object = wb.Document.DomDocument
    Dim o As Object = CallByName(doc, "documentElement", CallType.Get)
    RichTextBox2.Text = CallByName(o, "outerHTML", CallType.Get)
    Marshal.ReleaseComObject(o)
    Marshal.ReleaseComObject(doc)

End Sub

じゅんてん 2008/02/09(土) 10:32:48
[[解決]]

度々ご指導ありがとうございます。
望み通り RichTextBox2に" Target="_blankが付加されたソースが表示されました。
後半部分が理解出来ないところがありますので
勉強したいと思います。
高名な魔界の仮面弁士さんにお返事頂いて感謝しております。

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library