2017-02-11 102 views
-1

我們有一個DelphiXE程序,它使用TWebBrowser創建HTML文檔,並且只將它們的物體存儲在sql數據庫中。我們如何才能將src屬性更改爲只有相對路徑?

現在我們要將圖像添加到文檔中。 當我們在src屬性添加一個圖像,然後我們有

src="file:///D:/Projects/Test/IMAGES/img_1.GIF" 

d:/項目/測試的程序和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屬性使其具有相對路徑?

+2

「但我們做出任何改變「:你究竟是如何做出你正在詢問的改變?這個q需要一個MCVE(http://stackoverflow.com/help/mcve)讀者不應該猜測這種細節。 – MartynA

+1

在這種情況下,你的代碼應該在q中,而不是在註釋中。請編輯你的q。 – MartynA

回答

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; 
相關問題