我正在尝试在TWebBrowser
中加载本地HTML文件,编辑内容并保存。
我已阅读this文章中的一些建议,并尝试如下操作:
1)加载文档:
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('file:///C:\Tmp\input.html');
end;
2)将组件置于可编辑模式:
在TWebBrowser.OnDocumentComplete
事件处理程序中:
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; const URL: OleVariant);
begin
(WebBrowser1.Document as IHTMLDocument2).designmode := 'on';
end;
此时,该组件是可编辑的,我可以修改其文本。
3)保存编辑的文档:
procedure TForm1.Button1Click(Sender: TObject);
var
Stream : TStringStream;
begin
(WebBrowser1.Document as IHTMLDocument2).designmode := 'no';
Stream := TStringStream.Create((WebBrowser1.Document as IHtmlDocument2).body.innerHTML);
try
Stream.SaveToFile('C:\Tmp\output.html');
finally
Stream.Free;
end;
end;
在第一行,将引发EOleException
:
英语应该是这样的:
无法获得designmode属性。参数无效