使用TWebBrowser,我想实现以下目标:
每当导航以“.foo”结尾的URL时,我将解析HTML代码(修改它),然后显示此HTML。
所以我基本上使用this code在浏览器窗口中设置被操纵的HTML代码:
var
Doc: Variant;
begin
WebBrowser.Navigate('about:blank');
Doc := WebBrowser.Document;
Doc.Clear;
Doc.Write(NewHTML);
Doc.Close;
end;
问题是内部网址现在更改为“about:blank”。
即使我这样做,网址仍然是“about:blank”:
var
Doc: Variant;
begin
WebBrowser.Navigate('http://www.example.com/');
Doc := WebBrowser.Document;
Doc.Clear;
Doc.Write(NewContent);
Doc.Close;
end;
因此,所有相对路径都将失效。
如果代码包含例如
<img src="test.jpg">
然后浏览器会尝试加载about:test.jpg
那么,我能做些什么呢?
A)更改内部URL而不导航到它
或
B)在加载过程中动态更改内容(不取消导航)
附加说明:我无法使用Document.body.innerHTML
,因为.foo
文件的内容并不总是HTML。它也可以是纯文本,因此不存在<body>
标记。