【发布时间】:2011-11-27 22:32:04
【问题描述】:
我无法解决我的问题,我希望有人知道如何...
我的表单 TCppWebBrowser 上有一个组件,当我导航到 URL 时,在下载文档后,在方法 OnDocumentComplete() 中,我正在尝试检查和更改加载文档的 html 源...在它之前由浏览器执行。
我需要那个,因为有些网站有背景声音,我想解析 html 并删除标签或只是删除包含声音文件的文本,如 *.wav 、 *.mid 、 *.swf 、 *.mp3 ...等等。
例如,如果 html 源代码有这一行:
<NOEMBED><BGSOUND src="/images/ImagineCut.wav"></NOEMBED>
然后,我将其更改为:
<NOEMBED><BGSOUND src="/images/ImagineCut."></NOEMBED>
或者我可以删除整个标签。
使用这种方式,我想使网络浏览器静音,甚至停止播放声音。请考虑这种方法,因为它可以帮助我在编辑html后避免各种声音..(在浏览器执行之前)
这就是我试图做的:
void __fastcall TForm1::CppWebBrowser1DocumentComplete(TObject *Sender,
LPDISPATCH pDisp, Variant *URL)
{
IHTMLDocument2 *pHTMLDoc;
CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pHTMLDoc);
IHTMLElement *pElem;
pHTMLDoc->get_body(&pElem);
BSTR text;
pElem->get_innerHTML(&text);
text = Cleaning(text); //checking and changing html without souds
pElem->put_innerHTML(text);
pElem->Release();
pHTMLDoc->Release();
}
【问题讨论】:
-
DLCTL_BGSOUNDS 有什么问题?
-
问题是网站有很多方法可以附加背景音,但是DLCTL_BGSOUNDS对于各种背景音都没有解决成功。这个方法我已经试过了,可以说不好,最好在浏览器执行之前自己清理html代码,这样可以去掉声音扩展,浏览器就不能播放了。
标签: webbrowser-control c++builder