|
|
| ::Главная страница :: С++/Си :: Статьи |
Как вызвать скрипт из приложения?
При использовании 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();
}
|
Тематические
ссылки
|
| Ваша ссылка | Ваша ссылка |
|
Обмен кнопками, ведение статистики, реклама. |
|||