Est-ce que quelqu'un sait comment intercepter les clics sur les liens dans le contrôle WPF WebBrowser?WPF WebBrowser Control - aucun événement LinkClick
Je dois obtenir la cible des liens, lorsque le lien est cliqué, avant que la page ne navigue.
Toutes les entrées très appréciées!
Ma solution dans le code Comme proposé pour les liens simples qui seraient obtenus avec le code suivant:
private void webBrowser1_Navigating(object sender, NavigatingCancelEventArgs e)
{
//prefix must be lowercase (ssrs conforms to web-standards and makes things lowercase)
string myPrefix = "http://myPrefix";
//check if target starts with the prefix
if (e.Uri.AbsoluteUri.StartsWith(myPrefix))
{
//cancel Navigation
e.Cancel = true;
}
}
Merci de me hepling sur ce sujet.
Mais parfois cliquer sur un lien ne provoque pas la navigation, mais exécute un gestionnaire javascript. – STO
Merci à vous deux @DrakeVN, j'ai essayé d'obtenir tous les liens dans la page chargée dans l'événement Navigué, et d'y ajouter des événements pour chaque lien. Mais cela devient un peu poilu, car il faut travailler avec de nombreux objets com_objects. Et beaucoup semblaient changer, comparé au contrôle WebBrowser dans Windows Forms. Je vais essayer votre approche plus simple. @STO: les liens avec les gestionnaires javascript ne devraient pas poser de problème dans mon cas, car j'utilise les liens piégés dans Reporting Services pour ouvrir les éléments correspondants. – SwissCoder
@STO si le gestionnaire javaScript effectue un traitement puis une fenêtre window.open, existe-t-il un moyen d'intercepter cette ouverture et d'afficher cette URL dans le cadre de l'application conteneur, peut-être dans une nouvelle instance de contrôle WebBrowser? – Nitin