C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 69 を表示中)
■39822 / )  Re[4]: ウェブブラウザで編集したページを、実際のページにアップデート
□投稿者/ 魔界の仮面弁士 (1214回)-(2009/08/13(Thu) 23:55:01)
No39819 (RT さん) に返信
> あと一つ質問なのですが、以前に魔界の仮面弁士さんに教えていただいた、ウェブブラウザ上で直接ページを編集する方法ですが、テキストデータを変更した場合、裏側でHTMLの情報は書き換わっているのでしょうか?

たとえば JavaScript を使うと、ページの内容を動的に変える事ができますよね。
http://tomizawa-web.hp.infoseek.co.jp/method/createElement.htm
http://www9.plala.or.jp/oyoyon/html/script/append.html
http://www2.ocn.ne.jp/~yoochan/decoration/JavaScript/JavaScript.htm


この時、HTML の内容がオンメモリで書き換わる事になりますが、
それと同じ状況だと思って頂ければ良いかと思います。

DocumentText や DocumentStream、あるいは、ファイル保存のための
((IPersistFile)webBrowser1.Document.DomDocument).Save(fileName, bool) などでは、
修正前のソースとなる事もあるようですが、たとえば
 string s = webBrowser1.Document.GetElementsByTagName("HTML")[0].OuterHtml;
などを使えば、(完全ではありませんが)書き変わった後の HTML を得る事ができます。


で……今回示したような、スクリプト制御されたページの場合、WYSIWYG なツールでは、
細かい編集は難しいと思います。そのため、エディタを作るのであれば、
生の HTML を直接編集する機能も必要になるかと思います。


しかし、IE/WebBrowser の編集機能では、HTML のソース コードの書式を保持する事はできません。
(大文字小文字の制御、コメントの維持、ソースコード上の改行位置の調整など)

もしも、ソースの直接編集と WYSIWYG での編集の両方を兼ね備えたい場合には、
DHTMLEdit コントロール(DHTMLED.OCX … DHTMLEdit Control for IE5)を使うという手が使えます。


DHTMLEdit は特定バージョンの Office や IE にも含まれており、また、開発者向けに
Microsoft DHTML Editing SDK も存在し、再頒布用パッケージも用意されています。
http://www.microsoft.com/downloads/details.aspx?FamilyID=b769a4b8-48ed-41a1-8095-5a086d1937cb&DisplayLang=en
この DHTMLEdit を利用したフリー/シェアウェアの HTML 編集ソフトも、幾つか存在しています。

ただし、その DHTMLEdit については、
 ・Vista 以降には搭載されていない。(Vista 環境に再頒布することは可能)
 ・更新され続ける IE 本体とは異なり、DHTMLEdit の開発は IE5 当時で停止している。
 ・そのため、マネージ化されておらず、レガシーの ActiveX コントロールのままである。
などの問題もあるため、WebBroser での編集とどちらが良いとも言えないのが悩ましいところです。
http://msdn.microsoft.com/ja-jp/library/aa663363.aspx
返信 編集キー/


管理者用

- Child Tree -