Как вызвать функцию JavaScript на странице, просматриваемой элементом управления WebBrowser из приложения, в котором размещен элемент управления WebBrowser? - PullRequest
3 голосов
/ 24 июня 2009

Я создал настольное приложение C #, которое зависит от идеи веб-сканера.

Я сделал свое приложение, используя элемент управления веб-браузера, чтобы открывать веб-сайт и входить в него программно, а также перенаправлять на конкретную страницу с сеточным представлением со всеми данными пользователя, которые я хочу собрать ...

Но проблема здесь имени пользователя в щелчке сетки просмотра вызвана функцией JavaScript. Я знаю его имя, но не знаю, как его называть в настольном приложении.

Какие пространства имен или библиотеки DLL позволили бы мне сделать это?

Ответы [ 2 ]

8 голосов
/ 24 июня 2009

Я думаю, что это должно помочь вам:

http://www.west -wind.com / WebLog / сообщений / 493536.aspx

РЕДАКТИРОВАТЬ: Основываясь на этой ссылке, вот небольшой пример приложения. Добавьте кнопку и элемент управления WebBrowser в форму Windows и добавьте этот код:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.webBrowser1.DocumentText = @"<html>
<body>
<script type = ""text/javascript"">
function ShowMessage(text) {
   alert(text);
}
</script>
</body>
<input type=""button"" onclick=""ShowMessage('From JavaScript')"" value=""Click me""/>
</html>";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.webBrowser1.Document.InvokeScript("ShowMessage",new object[]{"From C#"});
        }
    }

Если вы нажмете кнопку в браузере, он покажет сообщение javascript, если вы нажмете кнопку в форме окна, появится сообщение C #.

0 голосов
/ 10 февраля 2012

Вы когда-нибудь думали об использовании следующего для запуска скрипта на странице, используя WebBrowser control?

' In VB - but easy to convert to C# as its pretty much the same thing :).
Dim sScript As String, sLanguage As String
sLanguage = "JScript"
sScript = "MyJavaScriptToRun();" ' you can run many lines by delimiting them with ;

WebBrowser1.Document.parentWindow.execScript sScript, sLanguage

Дайте мне знать, как вы ладите. В .NET-версиях элемента управления WebBrowser есть дополнительные методы для запуска скрипта, я думаю, что есть метод типа .RunScript (не могу вспомнить точное имя, но вы заметите его, как только увидите его в intellisense).

Дайте мне знать, если у вас есть еще вопросы.

...