|
::Главная страница :: С++/Си :: Статьи |
Как вызвать скрипт из приложения?
При использовании WebBrowser Вы можете вызывать любые скрипты, расположенные в теле html-страницы. Обращение к скриптам производится через диспетчерский интерфейс, возвращаемый в свойстве Script интерфейса IHTMLDocument.
В следующем примере демонстрируется вызов функции с именем evalute, которая определена в теле html-страницы следующим образом.
<SCRIPT> function evaluate(x) { alert(x +"= " + eval(x)); } </SCRIPT>
// Эта функция выполняет скрипт void CMyHtmlView::OnCallscript() { HRESULT hr; LPDISPATCH pDispatch = GetHtmlDocument(); if( pDispatch == NULL ) return; IHTMLDocument* pHtmlDoc; hr = pDispatch->QueryInterface( __uuidof( IHTMLDocument ), (void**)&pHtmlDoc ); LPDISPATCH pScript; pHtmlDoc->get_Script( &pScript); pScript->AddRef(); if (SUCCEEDED(hr)) { // Получаем DISPID интересуемой функции OLECHAR* szMember = L"evaluate"; DISPID dispid; HRESULT hr = pScript->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid); if (SUCCEEDED(hr)) { // Выполняем COleVariant vtResult; static BYTE parms[] = VTS_BSTR; COleDispatchDriver dispDriver(pScript); dispDriver.InvokeHelper(dispid, DISPATCH_METHOD, VT_VARIANT, (void*)&vtResult, parms, "5+Math.sin(9)"); } } pScript->Realease(); pHtmlDoc->Release(); pDispatch->Release(); }
Тематические
ссылки
|
Ваша ссылка | Ваша ссылка |
Обмен кнопками, ведение статистики, реклама. |
|||
|
|
|
|
|