Как редактировать html (теги), прежде чем он будет выполнен CppWebBrowser - PullRequest
0 голосов
/ 29 сентября 2011

Я не могу решить свою проблему, и я надеюсь, что кто-то знает, как ...

У меня есть компонент в моей форме TCppWebBrowser, и когда я перехожу к URL-адресу, после загрузки документа, вМетод OnDocumentComplete (), я пытаюсь проверить и изменить HTML-источник загруженного документа ... до его запуска браузером.

Мне это нужно, потому что на некоторых сайтах есть фоновые звуки, и я хочу проанализировать html и удалить теги или просто удалить текст, содержащий звуковые файлы, такие как * .wav, * .mid, * .swf, * .mp3... ect.

Например, если источник html имеет эту строку:

<NOEMBED><BGSOUND src="/images/ImagineCut.wav"></NOEMBED>

, тогда я изменяю ее на:

<NOEMBED><BGSOUND src="/images/ImagineCut."></NOEMBED>

или я могу удалить всюtag.

С помощью этого способа я хочу отключить веб-браузер или даже остановить воспроизведение звуков.Пожалуйста, примите во внимание этот метод, потому что он поможет мне избежать всевозможных звуков после того, как я отредактировал 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();

}

1 Ответ

0 голосов
/ 30 сентября 2011

Чтобы сделать то, что вы просите, вам нужно будет полностью загрузить HTML-файл из-за пределов компонента TCppWebBrowser, при необходимости изменить его, а затем вставить новый HTML-код в TCppWebBrowser, используя один из его интерфейсов IPersist ... , Примеры этого были опубликованы на форумах Borland / CodeGear / Embarcadero много раз прежде.

...