Delphi使用WebBrowser实现网页编辑器

Delphi 的 WebBrowser 组件,其实拿来做个网页编辑器,还挺方便的。你只要把控件拖到窗体上,再通过 IHTMLDocument2 把编辑模式打开,就能像用 Word 那样改网页内容,支持加粗、插图、插链接,基本操作都能搞定。重点是代码不复杂,响应也快,适合做内部小工具或者 CMS 后台编辑器。

WebBrowser 的编辑模式是靠设置designMode属性实现的,值设成'on'之后,用户就能直接点页面改文字。比如:

var Doc: IHTMLDocument2;
begin
  if WebBrowser1.Document <> nil then
  begin
    Doc := WebBrowser1.Document as IHTMLDocument2;
    if Doc <> nil then
      Doc.designMode := 'on';
  end;
end;

你可以插图片、加样式,还能拿execCommand搞点高级点的功能,比如:

procedure InsertImage(const ImageURL: string);
var
  Doc: IHTMLDocument2;
  Range: IHTMLTxtRange;
begin
  if WebBrowser1.Document <> nil then
  begin
    Doc := WebBrowser1.Document as IHTMLDocument2;
    if Doc <> nil then
    begin
      Range := Doc.selection.createRange;
      Range.pasteHTML('');
    end;
  end;
end;

保存的时候也简单,直接读 outerHTML 就行:

HTMLSource := Doc.documentElement.outerHTML;

安全问题也不能忽视。WebBrowser 是基于 IE 的,老是老了点,偶尔还得修修补补。你可以只加载你信得过的 HTML,别让用户随便跳转。

如果你追求更现代一点的体验,也可以看看 Electron,功能多点、跨平台也更强。

感兴趣的话,还可以看看这些相关文章:

如果你在做小工具、后台 CMS 编辑页之类的,Delphi 自带的 WebBrowser 还挺能打的,用得顺手就是好工具。

rar 文件大小:1.71MB