IE Сбой при открытии методов для JS - PullRequest
0 голосов
/ 10 июля 2020

Разрабатываю BHO для IE в C#. Проблема, в которой я застрял, заключается в том, что IE вылетает, говоря, что

«Inte rnet Explorer перестал работать»

затем

«Проблема с веб-страницей привела к тому, что Inte rnet Explorer закрыл и снова открыл вкладку»

Такое поведение наблюдается в Windows 10 Pro 2016 и IE 11. Однако тот же BHO отлично работает с другими версиями Windows, например Windows 8.1 - IE 11, Windows 10 2019,2020 - IE 11.

Обычно это происходит при переходе по ссылке в уже открытой вкладке или при обновлении страницы.

Я проверил журналы, это происходит при выставлении методов для события от JS до BeforeScriptExecute в этой строке p.SetValue(windowEx, this);

private void S2_BeforeScriptExecute(object pDispWindow)
{
    try
    {
        HTMLDocument doc = _webBrowser.Document as HTMLDocument;

        if (doc != null)
        {
            IHTMLWindow2 tmpWindow = doc.parentWindow;
            dynamic window = tmpWindow;
            IExpando windowEx = (IExpando)window;
            PropertyInfo p = windowEx.AddProperty("myExtension");
            p.SetValue(windowEx, this);
        }
    }
    catch (Exception ex)
    {
    }
}

Полный код доступен здесь в вопросе.

...