Hilfe.
Ich enumeriere mit einem Codeschnipsel, den
marabu mal geposted hat, alle StyleSheets in einem Dokument:
Delphi-Quellcode:
procedure SetSpecialCSS(WB: TWebBrowser);
var
doc: IHTMLDocument2;
cStyles: IHTMLStylesheetsCollection;
i: integer;
ss, vi: OleVariant;
begin
doc := WB.Document as IHTMLDocument2;
cStyles := doc.styleSheets; // no cast necessary
//Enumerate all StyleSheets
for i := 0 to cStyles.length - 1 do begin
vi := i;
ss := cStyles.item(vi); // no cast possible
ShowMessage(ss.href);
end;
end;
Für mich ist es wichtig, dass ich alle Stylesheets bekomme, da ich diese durch eigene, lokale ersetzen muss. Nun habe ich das Problem, dass mir der Code alle StyleSheets listet, allerdings nur bei denen die Adresse zurückgibt, die via
HTML - Syntax eingebunden werden. Bei CSS - Syntax klappt das nicht.
Beispiel:
HTML - Syntax:
Code:
<link rel="stylesheet" href="./templates/DPClassicBlue/DPClassicBlue.css" type="text/css">
Rückgabewert:
'./templates/DPClassicBlue/DPClassicBlue.css'
CSS - Syntax
Code:
<style type="text/css"> @import
url("./formIE.css"); </style
Rückgabewert
''
Es werden aber zwei definierte StyleSheets erkannt. Kennt jemand ein Workaround dafür?