Webbrowseコントロールを使って、Htmlを保存したい?


YUU  2004-06-18 23:28:45  No: 114051  IP: [192.*.*.*]

いきなりいろいろ大変申し訳ありません。(-_-;)

Webbrowseコントロールを使って、Htmlを保存したのですが、

外部リンクファイル(URL)がローカルになってしまいます。
(例)
Http://www.test.com/test.pdf
file:///c:\/test.pdfみたいになるようです。(

ある意味、当然だと思いますが、
リンクのみHttp://www.test.com/test.pdfまま保存するのは、可能なのでしょうか?

編集 削除
マグ  2004-06-19 13:11:03  No: 114052  IP: [192.*.*.*]

VB.NETのソースですが・・・

[SaveFileDialog]を追加してください。

Webbrowseコントロールでテキストにソースを表示させて、
With SaveFileDialog1
            .FileName = ""
            .Filter = "HTMLファイル|*.html"
            .ShowDialog()
        End With

のソースを記述して、WriteLineを使いソースを保存すればHTML形式で保存が可能です。

編集 削除
マグ  2004-06-19 13:13:35  No: 114053  IP: [192.*.*.*]

まだ、ありました。

上で書いた
With SaveFileDialog1
            .FileName = ""
            .Filter = "HTMLファイル|*.html"
            .ShowDialog()
        End With
を記載しないで、

WriteLineのところで〜〜.htmlで保存させるというのもあります。
しかし、この方法だと特定の場所でしか保存できなくなってしまいますけどね。

編集 削除
YUU  2004-06-22 09:29:51  No: 114054  IP: [192.*.*.*]

マグさまありがとうございます。
環境を記述しておりませんでしたので、質問がうまく伝わらなかったみたいで、
申し訳ありません。
Win2000  VB6.0SP5

Webbrowseコントロールを使って、Htmlを保存処理自体は、以下のようにできています。過去ログをみてみましたが、

FileNumber1 = FreeFile                                      ' 未使用のファイル番号を取得します。
Open App.Path & "\TEST.html" For Output As #FileNumber1     ' ファイル名を作成します。
'    Write #FileNumber1, WebBrowser1.Document.body.outerHTML?
 Write #FileNumber1, WebBrowser1.Document.documentElement.outerHTML?

しかしこれですと、確かにソースどおり保存されるみたいなのですが、
画像が表示されませんし、リンク先もローカルになってしまうのです。
インターネットエクスプローラですと、ちゃんと画像は、ダウンロードされ、リンク先も正しくなっています。

これをやりたいと思って質問したのです。大変申し訳ありません。
    
    

    Close #FileNumber1

編集 削除
YUU  2004-06-22 10:35:06  No: 114055  IP: [192.*.*.*]

インターネットエクスプローラで言うファイルの名前をつけて保存を
ダイアログを出さずに保存できればと思うのですが。

編集 削除
マグ  2004-06-22 14:04:51  No: 114056  IP: [192.*.*.*]

ホームページを作るときに画像を表示させようと思ったら画像のパスは相対パスで記述されています。
つまり、../zikken.jpgのような感じで
その方法で画像を表示させている所を自分のデスクトップにHTMLを保存し、そこから画像を表示させようとしたら画像は表示されますか?

対処方法としては、HTMLソースの画像を表示するところをプログラムによってフルパスに書き換える必要が出てきます。
でも、できないことはないです。
なぜなら、もとのホームページのパスは入力したときに残っています。
んでもって画像へのパスはそのホームページのソースに書いてあります。
あとは、どうやって、プログラムを使ってパスを切り貼りするかです。

私的にはindexOfとsubstringのコンボがいいと思います。
HTMLの知識があれば簡単にできるかもしれないと思います。

編集 削除
マグ  2004-06-23 12:48:20  No: 114057  IP: [192.*.*.*]

失礼しました。

間違えて記載した部分がありました。
よく考えたらHTMLの場合、外部リンクがありました。
つまり、HTML本体では動きを与えることができないためJavaScript(JScript)に外部リンクして、動きを与えるなどしています。
よって、indexOfとsubstringのコンボで検索&カットの対処はパスをターゲットにしたほうがいいです。

編集 削除