Здравствуйте, vinnitu, Вы писали:
V>Здравствуйте, degoal, Вы писали:
D>>не получается динамически добавить скрипт
V>аналогичная проблема.
V>посредством put_innerHTML() не удаётся добавить код с <script>,
V>отфильтровывается он... так а как же тогда его добавить?
Собственно говоря, все зависит от того, для чего тебе нужно добавить скрипт на страницу. Если для того, чтобы выполнить его в контексте страницы (что собственно мне и нужно было), то можно использовать следующий код:
CComQIPtr<IHTMLDocument2> doc2;
CComQIPtr<IHTMLDocument3> doc3;
CComQIPtr<IHTMLWindow2> win2;
CComQIPtr<IHTMLElement> elem;
HRESULT hr;
_variant_t rv;
_bstr_t code;
_bstr_t lang_name("JavaScript");
doc2 = m_browser.get_Document();
doc3 = doc2;
hr = doc2->get_parentWindow(&win2);
code = "function test_func() { alert(\"Hello World\"); }";
hr = win2->execScript((BSTR)code, (BSTR)lang_name, &rv); // таким образом происходит объявление функции для JavaScript
Причем объявленный таким образом код можно вызвать как из С++
code = "test_func();";
hr = win2->execScript((BSTR)code, (BSTR)lang_name, &rv);
так и путем вызова этой объявленной функции из уже существующего кода на HTML странице.