Держись, ребята. PAUSE .Всем вам нужно замедлиться и прочитать .Как сказал этот парень:
I get Error from the webbrowser control :
Это означает, что он встраивает веб-браузер, открывающий эту страницу, которая запускает javascript.
Чтобы прояснить это, я думаю, он имеет в виду:
- Это не онлайн.
- У него в приложении C # есть webBrowserControl, который открывает страницу для запуска этого javascript.
- В своем приложении он хочет использовать javascript для вызова метода C # из класса в своем приложении..
Теперь я согласен, что он был немного неоднозначным (подсказка, пожалуйста, будьте яснее с вашим вопросом в следующий раз), но вы, ребята, все публикуете ответы и опережаетесам.Фактически, то, что он описывает, действительно возможно, и вот как вы это делаете.
Теперь объект, на который вы хотите сослаться в вашем javascript, это window.external.Вот пример в вашем javascript:
window.external.CreateFoo();
для вызова CreateFoo ().Однако, прежде чем вы сможете это сделать, вы должны сделать свой класс видимым для страницы, которую открывает ваш веб-браузер (window.external - это экземплярный класс, на который вы ссылаетесь).
Итак, чтобы установить window.external, когда вы создаете webBrowser в C #:
webBrowser1.ObjectForScripting = this;
Итак, чтобы подвести итог:
- В вашем C #app, установите ObjectForScripting вашего элемента управления веб-браузера на любой объект, на который вы хотите сослаться в Javascript.
- В Javascript на своей странице вы можете вызвать
window.external.YOURMETHOD();
для вызова любого открытого метода из этого класса ObjectForScripting, который вы установилипервоначально.
Надеюсь, это поможет вашей ситуации, и другие будут более осторожны при чтении вашего вопроса.
РЕДАКТИРОВАТЬ: Также в качестве напоминания, webBrowserControl зависит от версии наIE, который пользователь установил на своем компьютере.Так что будьте осторожны с версионированием, javascript будет работать только в той степени, в которой его / ее версия IE может обрабатывать (то же самое касается стилей и т. Д.)
Редактировать Редактировать: Вам также необходимо добавить атрибут ComVisible [ComVisible (истина)]