попытка запомнить кнопку отправки с помощью c#

#javascript #c# #webbrowser-control #invokemember

#javascript #c# #веб-браузер-управление #invokemember

Вопрос:

  1. Это код веб-сайта :

     function checkSubmit(e)
    {
       if(e amp;amp; e.keyCode == 13)
       {
          document.frmLogin.submit();
       }
    }
    <div class="enterButton" onclick="document.frmLogin.submit()">Sign in</div>
      
  2. Это то, что я пробовал на c# :

     HtmlElementCollection elc1 = webBrowser1.Document.GetElementsByTagName("div");
    foreach (HtmlElement element in elc1)
    {
        if (element.GetAttribute("InnerHtml").Equals("<DIV onclick=document.frmLogin.submit() class=enterButton>Sign in</DIV>"))
        {
            element.InvokeMember("submit()");
        }
    }
      
  3. foreach if Работает, и оператор работает, когда доходит до InvokeMember ничего не происходит.

Комментарии:

1. Как вы запустили c # в браузере?

2. @Will OP пытается вызвать функцию javascript в элементе управления WebBrowser на c #, что возможно….

3. Я запускаю форму Windows VS13 с контроллером webbrowser…..

4. Обратите внимание, что ваш заголовок ссылается на «кнопку отправки», которая обычно является названием для HTML <input type="submit"/> -кода, но ваш код показывает a div , который не является кнопкой.

Ответ №1:

Извините за беспокойство, я просто ошибся элементом:

 if (element.GetAttribute("InnerHtml").Equals("Sign in"))
{
element.InvokeMember("click");
}
  

теперь это работает….

Ответ №2:

Попробуйте вызвать метод-член без скобок.

  element.InvokeMember("submit");
  

Комментарии:

1. Круглые скобки или круглые скобки 🙂

2. Те, которые я удалил в ответе выше … 🙂

3. Разве вы не хотите вызывать "click" , поскольку element это a div ?