Als @Szabolcs Dézsi im Kommentar erwähnt, wenn Sie den Zugriff auf Web-Anwendung haben, können Sie WebBrowser.ObjectForScripting
zu Instanz eines Objekts verwenden und rufen Sie die Methode von Javascript. Hier ist eine einfache Demo:
[ComVisible(true)] // Class must be ComVisible
public class Demo
{
public void SayHello(string name) => MessageBox.Show($"Hello {name} !!!");
}
eine Instanz dieser Klasse erstellen ein weisen es ObjectForScripting
Eigenschaft des WebBrowser-Steuerelement:
webBrowser.ObjectForScripting = new Demo();
und sagen, diese einfache HTML-Seite, die wir in der WebBrowser
Kontrolle angezeigt werden :
Wenn Sie nun einen Namen eingeben und auf die Schaltfläche SayHello klicken, wird MessageBox wie erwartet angezeigt.
Auch Sie haben die Eigenschaft WebBrowser.Document
, die eine Instanz von HtmlDocument
, die in Microsoft HTML Object Library (MSHTML) Com-Bibliothek lebt, stellen Sie sicher, dass es in Ihrem Projekt zu verweisen.
Die Document-Eigenschaft können Sie das DOM-Objekt der aktuellen Seite abfragen und durch sie können Sie Ihre HTML-Seite wie in Javascript über Methode von HtmlDocument
Klasse wie HtmlDocument.getElementById()
und viele andere freigelegt.
webBrowser.LoadCompleted += new LoadCompletedEventHandler((o, e) =>
{
if (webBrowser.Document is HTMLDocument DOM)
{
var namefield = DOM.getElementById("name");
namefield.setAttribute("value", "Enter your name!!!");
}
});
Hope this Sie die Macht verstehen hilft, die WebBrowser
Steuerung geladen Seiten zu manipulieren bietet:
zum Beispiel dieser Code den Wert Attribut Namenseingabe von oben HTML-Seite für Seite ändern wird von WebBrowser Steuerelement geladen .
Können Sie die ASP.NET-Anwendung ändern? Wenn ja, dann können Sie die 'ObjectForScripting' -Eigenschaft des Browser-Steuerelements auf eine Instanz einer Klasse setzen, die von der Site von JavaScript über' window.external' aufgerufen werden kann. –