掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
AxWebBrowserのページ検索とキャッシュを読み込まないようにするには? (ID:138387)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめに、載せたコードのTab(インデント)が削除されてしまい、 見にくくなってしまい申し訳ございません。 通ってみたさん、レスありがとうございます。 ページを読み込むための以下の関数を作成し、この関数を実行し ページを読み込むようにしたところ、 常にサーバーからページを取得するようになり、 この問題は解決できそうです。 ありがとうございます。 'ファイルが存在した場合にキャッシュから関連したファイルを削除する Private Declare Function DeleteUrlCacheEntry Lib "wininet" _ Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Integer Public Sub myPageLoad(ByVal awb As AxSHDocVw.AxWebBrowser, ByVal strUrl As String) Const navNoHistory As Integer = &H2 Dim strUrlTemp As String = strUrl If strUrl <> vbNullString Then 'キャッシュが存在する場合はキャッシュを削除する If DeleteUrlCacheEntry(strUrl) <> 0 Then Debug.Print(Format(Now, "yyyy/MM/dd HH:mm:ss") & " ○Del : " & strUrl) Else Debug.Print(Format(Now, "yyyy/MM/dd HH:mm:ss") & " ●Non : " & strUrl) End If End If awb.Navigate(strUrlTemp, navNoHistory, vbNullString, vbNullString, vbNullString) End Sub ただ、ちょっと気になったのが、DeleteUrlCacheEntry(strUrl) を実行すると strUrl の内容が変わってしまうことがあることです。 例えば、 strUrl = "http://www.google.com/search?num=50&lr=lang_ja&q=テスト" となっていた場合に、 DeleteUrlCacheEntry(strUrl) を実行後、 strUrl = "http://www.google.com/search?num=50&lr=lang_ja&q=テ" に置き換わり、awb.Navigate に strUrl を渡してしまうと、 googleでは、"テ"として検索が行われてしまいます。 DeleteUrlCacheEntry への引数は ByVal(値渡し)で宣言しているのに、 ByRef(参照渡し)で渡されているのが気になりました。 とりあえず、DeleteUrlCacheEntry(strUrl)を行う前に、 strUrlTemp という変数に strUrl をコピーし、 awb.Navigate に strUrlTemp を渡すことで回避しました。 もう一方のページ内の検索語句をハイライトした後に、ハイライトなしに戻す方法ですが、 上のコードはC#で書かれていたコードをVB2005へ無理やり書き換えたものなのですが、 For Each he As HtmlElement In AxWebBrowser.Document.GetElementsByTagName の部分の書き換え方が間違っているようで、 いろいろ試行錯誤していますが、いまだに悩んでおります。 ネットでいろいろ調べているのですが、標準装備の WebBrowser のサンプルはあるのですが、 AxWebBrowser のサンプルがなく先が見えない状態です。 AxWebBrowser で GetElementsByTagName を使用する方法をご存知の方が いらっしゃいましたら、アドバイス頂けたら幸いです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.