Элемент управления веб-браузером window.external ВСЕГДА имеет значение null

Объект Window.External веб-браузера всегда имеет значение null!

Чтобы воспроизвести, перетащите веб-браузер на новую форму winform и введите:

Option Strict Off

Public Class Form1
    Private Sub Form1_Load()
        Handles MyBase.LoadMe.WebBrowser1.Document.Window.DomWindow.External.AddFavorite("http://www.google.com")
    End Sub
End Class

Обязательно перейдите в диалоговое окно «Информация о сборке» и установите флажок «Сделать сборку COM-видимой». Это необходимо.

Я не понимаю, почему с видимой сборкой COM внешний объект всегда ничто.


person Community    schedule 31.01.2009    source источник


Ответы (2)


Вы установили для свойства ObjectForScripting значение ваше хост-окно? Я думаю, вам нужно сделать это, чтобы window.external работал.

person Matt Hamilton    schedule 31.01.2009

Кроме того, убедитесь, что объект, для которого вы установили ObjectForScripting, имеет следующие атрибуты:

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]

Без него window.external всегда был нулевым.

person Patrick    schedule 03.11.2011
comment
Мне помогло [System.Runtime.InteropServices.ComVisibleAttribute(true)]. - person Steve Blackwell; 01.03.2012