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

解決


じゅんてん  2008-02-08 18:23:04  No: 138897

VB2005でWebBrowserで開いたページのリンクにTarget="_blank"を付加したいのですがうまく出来ず悩んでおります。

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

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


魔界の仮面弁士  2008-02-08 22:37:24  No: 138898

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-09 04:51:43  No: 138899

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

もう少し悩んでみます。


魔界の仮面弁士  2008-02-09 05:21:31  No: 138900

> ソースが変更されることはありませんでした。
これでどうでしょう。

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 19:32:48  No: 138901

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


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

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






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