投稿日 | : 2005/09/15(Thu) 09:45 |
投稿者 | : ちり |
Eメール | : |
URL | : |
タイトル | : Re^6: WebBrowserで画像を表示させない |
自己レスです。
一応、画像を表示させずに表示させ、リンク先に飛ぶ(一部不可)ことが出来ましたので、
その結果を報告します。
処理の内容としては、WebBrowser1が読み込み処理を行うまえに、BeforeNavigate2でキャンセルし、
別途ソースのみを読み込む。画像表示をつぶす。WebBrowser1に読み込ませる。リンクを修正する。
といった流れです。ですが、CSSを読めない、aaa.htm#bbbのリンクは飛ばない、ファイルのDLが出来な
い、
CGIの処理が出来ない、文字化けする、等々、問題が多すぎるので諦めました。
レスしてくださったみなさん。ありがとうございました。
Private reLoadHN As Boolean
Private aPath As String
Private bPath As String
Private sURL As String
Private Sub Form_Load()
aPath = fYen(App.Path) & "tmp.htm"
bPath = aPath & "l"
End Sub
Private Sub Command1_Click()
WebBrowser1.Navigate "hhttp://www.yahoo.co.jp/"
End Sub
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As
Variant, _
TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Dim S As String
Dim i As Long
'永久防止
If reLoadHN = True Then
Cancel = False
Exit Sub
Else
reLoadHN = True
End If
'読み込みをキャンセル
Cancel = True
'変更
sURL = URL
'html所得
'S = getHtmlMsXML(sURL)
'SampleNo=132
getHtmlInet sURL, aPath
'ファイルの読み込み
fLoadFile aPath, S
'エラー回避
If S = "" Then
reLoadHN = False
Exit Sub
End If
'元を保存
fSaveFile "tmp.htm", S
'画像表示情報を削除
S = delImgTag(S)
'すり替えた情報を保存
fSaveFile bPath, S
'すり替え表示
WebBrowser1.Navigate bPath
Do While WebBrowser1.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
'ベースURLを登録
'×:読み取り専用
'WebBrowser1.LocationURL sURL
'リンクを修正
For i = 0 To WebBrowser1.Document.links.length - 1
WebBrowser1.Document.links(i).href = _
Replace(WebBrowser1.Document.links(i).href, "file:///C:/", sURL)
Next i
'終了
reLoadHN = False
End Sub
Private Function delImgTag(ByVal S As String) As String
S = Replace(S, ".gif", "")
S = Replace(S, ".jpg", "")
delImgTag = S
End Function