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 还挺能打的,用得顺手就是好工具。
1.71MB
文件大小:
评论区