Отправка сообщений на внешний Javascript через mshtml - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь связаться с внешне связанным файлом 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

...