Я пытаюсь связаться с внешне связанным файлом Javascript из DOM, используя mshtml.
Я подумал, что использовать postMessage, найденный в IHTMLWindow6, будет самым простым способом, но я не получаю сообщения в моем внешнем файле JavaScript.
Вот мой код C ++, который отправляет сообщение:
if (!htmlDocu->get_parentWindow(&htmlWin2) && htmlWin2)
{
IHTMLWindow6 * htmlWin6;
if (!htmlWin2->QueryInterface(IID_IHTMLWindow6, (void **)&htmlWin6) && htmlWin6)
{
VARIANT varBstr;
VariantInit(&varBstr);
varBstr.vt = VT_BSTR;
varBstr.bstrVal = SysAllocString(L"*");
BSTR str1 = SysAllocString(L"the message");
htmlWin6->postMessage(str1, varBstr);
VariantClear(&varBstr);
SysFreeString(str1);
}
}
Вот мой код JavaScript, который должен получать сообщение, но это не так:
window.addEventListener('message', function(event) {
alert('got message'); /* Never happens. Why? */
alert(event.origin); /* Never happens. Why? */
alert(event.data); /* Never happens. Why? */
}, false );
Iсчитаю, что ошибка в C ++, так как я могу отправить событие сообщения внутри javascript без проблем:
window.addEventListener('load', function(event) {
alert('sending message');
window.postMessage("lalala", "*");
}, false);
Может кто-нибудь предоставить, где я могу найти хороший пример C ++ использования postMessage () через IHTMLWindow6