我们有一个DelphiXE程序,它使用TWebBrowser创建HTML文档,并且只将它们的主体存储在sql数据库中。
现在我们要将图像添加到文档中。 当我们添加图像然后在src属性中我们有
src="file:///D:/Projects/Test/IMAGES/img_1.GIF"
D:/ Projects / Test是程序和HTML文件的位置。
我们希望在src属性中有相对路径,所以当我们更改src属性
时s:=elem.outerHTML;
s:='<IMG border=0 hspace=0 alt="pic 2" src="./IMAGES/955_2.GIF">';
// or s:='<IMG border=0 hspace=0 alt="pic 2" src="IMAGES/955_2.GIF">';
elem.outerHTML:=S
然后src属性不会改变,它保持不变
src="file:///D:/Projects/Test/images/Img_1.GIF"
我们使用记事本
在HTML文件中设置基本目录<BASE href="D:\Projects\Test\">
没有成功。
我们如何更改src属性以获得相对路径?
答案 0 :(得分:1)
假设以下HTML:
<body>
<img border=0 alt="pic 2" src="file:///D:/Projects/Test/IMAGES/img_1.GIF">
<p>Hello World</p>
</body>
假设已将其加载到名为WebBrowser1的TWebBrowser组件实例中,
使用SetAttribute而不是outerHTML,如下所示:
var
Body : IHTMLElement;
Children: IHTMLElementCollection;
Element : IHTMLElement;
begin
Body := (WebBrowser1.Document as IHTMLDocument2).body;
Children := Body.children as IHTMLElementCollection;
Element := Children.item( 0, 0 ) as IHTMLElement;
Element.setAttribute( 'src', './img_1.GIF', 0 );
// To prove a point:
ShowMessage( Element.outerHTML );
end;