2015-07-07 2 views
1

У меня есть форма Winforms с WebBrowser control на нем.Как вы регистрируете результат POST в элементе управления WebBrowser?

Я уже понял, как подключить C# код на JavaScript, в элементе управления веб-браузера, прилагая экземпляр C# класса в ObjectForScripting собственности, как это:

public partial class Browser : Form 
{ 
    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     webBrowser1.ObjectForScripting = new ScriptInterface(); 
    } 
} 

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")] 
[ComVisible(true)] 
public class ScriptInterface 
{ 
    public void DoSomething(string data) 
    { 
     // Do something interesting with data here 
    } 
} 

... а затем вызвать его из JavaScript, как это:

<button onclick=window.external.DoSomething('with this')/> 

то, что я не понял, все же, как захватить результат операции POST из формы в элементе управления WebBrowser, и использовать его в моем C# код ,

+0

Вы хотите, чтобы перехватить форму пост? Не могли бы вы сделать это в jQuery? Похоже, было бы довольно просто заставить jQuery передать данные обратно вашему внешнему методу. – DavidG

+0

Кажется, все будет хорошо. –

ответ

2

Вы можете использовать jQuery post вместо сообщения в форме.

Предполагая, что ваша форма имеет идентификатор myForm:

$("#myForm").submit(function(event) {  
    // Stop form from submitting normally 
    event.preventDefault(); 

    // Get some values from elements on the page: 
    var $form = $(this), 
    var term = $form.find("input[name='s']").val(), 
    var url = $form.attr("action"); 

    // Send the data using post 
    var posting = $.post(url, { s: term }) 
     .done(function(data) { 
      //Pass the response back to your code 
      window.external.DoSomething(data); 
     }); 
}); 
+0

Удалить атрибут 'action' из тега'

', как в' '? –

+0

Нет, оставьте это там. Строка 'var url ...' использует его для получения URL-адреса для публикации. – DavidG

+0

О, я вижу. Я не думаю, что на самом деле я опубликую его в любом месте, просто передав его в «ScriptInterface». –

Смежные вопросы