Meilleur auteur de réponses
controle webbrowser

Question
-
Bonjour,
Visual Basic 2008
A l'instar de l'outil de developpement accessible dans IE8 (outils/outils de developpement) permettant la selection avec la souris d'un element de la page web , j'ai besoin de réaliser cette opération à l'aide d'un controle webbrowser et et enregistrer l'element selectionné avec la souris.
j'utilise Visual studio 2008 pro
je n'ai pas vu d'exemples dans la documention msdn
Merci d'avance pour votre aide
JJK
Réponses
-
l'injection de code javascript est résolu
j'avais besoin uniquement de cela pour exemple :
Dim
head As HtmlElement = webBrowser1.Document.GetElementsByTagName("head")(0)
Dim scriptEl As HtmlElement = webBrowser1.Document.CreateElement("script")
Dim element As IHTMLScriptElement = DirectCast(scriptEl.DomElement, IHTMLScriptElement)
element.text = "function sayHello() { alert('hello') }"
head.AppendChild(scriptEl)Dim bodytag As HtmlElement = webBrowser1.Document.GetElementsByTagName("body")(0)
bodytag.SetAttribute("onmouseover", "whichElement(event); ")bodytag.SetAttribute("onmouseout", "borderoff(event); ")il me reste un problème à résoudre
Quans je teste ma page HTML dans IE8, je modifie correctement le style "outlineStyle" pour chacune des balises survolées
Par contre cette action est inopérante quand je charge cette même page HTML dans le controle Webbrowser.(sans effectuer aucune modification du contenu)
Pouvez-vous m'aider
Merci d'avance
JJK
- Marqué comme réponse Alex Petrescu lundi 10 janvier 2011 09:50
Toutes les réponses
-
-
Bonjour, je m'explique
1) - j'ouvre une page web avec IE
2) - dans IE , je clique sur outils/outils de developpement (F12)
3) - une fenetre s'ouvre avec en titre "Outil de developpement"
4) - je clique sur le menu "Rechercher", puis "selectionner l'élément par click (ctrl+B)
5) - je déplace mon curseur de souris sur la page web html, des zones (éléments) encadrées délimitées par une bordure furtive apparaissent autour du curseur de la souris.
je souhaiterais simplement enregistrer dans un fichier la zone encadrée .
Apparement il faut que je m'oriente vers "webbrowser.objectfor scripting" j'ai besoin de faire communiquer entre elles une page web visitée et un controle windows form
me suis-je bien expliqué ?
jjk
-
-
-
objectif à atteindre:
je consulte une page web, dans une zone il y a une information qui m'interesse (du texte , images....) et que j'aimerais sauvegarder dans mon PC (sous la forme d'une page web ou autre ) en expurgeant tout ce qu'il y a autour.
je cherche un moyen pour réaliser cette opération
-
Bonjour, Bonsoir,
Le contrôle WebBrowser a la base ne gère pas du tout le clic, il faut le creer
Private WithEvents _document As HtmlDocument Private oldDocument As mshtml.IHTMLDocument Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted _document = Me.WebBrowser1.Document oldDocument = _document.DomDocument End Sub Private Sub _document_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs) Handles _document.Click Dim focusedElement As mshtml.IHTMLElement = GetFocusedElement() If focusedElement IsNot Nothing Then If oDocClic = False Then oDocClic = True End If End If End Sub Public Function GetFocusedElement() As mshtml.IHTMLElement Dim focusedElement As mshtml.IHTMLElement = Nothing If oldDocument.selection.type = "None" Then focusedElement = CType(oldDocument.selection.createRange(), mshtml.IHTMLTxtRange).parentElement ElseIf oldDocument.selection.type = "Control" Then focusedElement = CType(oldDocument.selection.createRange(), mshtml.IHTMLControlRange).item(0) End If Return focusedElement End Function
Le première étape serais de récupérer le survole de la souris sur le document et de localiser ou, j'essaye de voir avec les connaissance que j'ai pour voir ce qui est possible de faire ...
A suivre :) dans les prochains jour ! :P
Cordialement, Troxsa http://troxsa.blogspot.com/ (en cours) -
Bonjour, Bonsoir,
Le contrôle WebBrowser a la base ne gère pas du tout le clic, il faut le creer
Private WithEvents _document As HtmlDocument Private oldDocument As mshtml.IHTMLDocument Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted _document = Me.WebBrowser1.Document oldDocument = _document.DomDocument End Sub Private Sub _document_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs) Handles _document.Click Dim focusedElement As mshtml.IHTMLElement = GetFocusedElement() If focusedElement IsNot Nothing Then If oDocClic = False Then oDocClic = True End If End If End Sub Public Function GetFocusedElement() As mshtml.IHTMLElement Dim focusedElement As mshtml.IHTMLElement = Nothing If oldDocument.selection.type = "None" Then focusedElement = CType(oldDocument.selection.createRange(), mshtml.IHTMLTxtRange).parentElement ElseIf oldDocument.selection.type = "Control" Then focusedElement = CType(oldDocument.selection.createRange(), mshtml.IHTMLControlRange).item(0) End If Return focusedElement End Function
Le première étape serais de récupérer le survole de la souris sur le document et de localiser ou, j'essaye de voir avec les connaissance que j'ai pour voir ce qui est possible de faire ...
A suivre :) dans les prochains jour ! :P
Cordialement, Troxsa http://troxsa.blogspot.com/ (en cours) -
Bonjour,
Une fonctionnalité similaire a été demandée dans ce thread :
Propriétés des composants MSHTML
Peut-être la discussion et les liens vous seront utiles.
Cordialement,
Alex
________________
Astuces pour Visual Studio 2010
XNA – Développement jeux vidéo
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.
-
Bonjour,
j'ai réussi à créer 2 fonctions javascript qui permettent de délimiter par une bordure la zone html associée à une balise quand la souris passe dessus et d'eteindre la selection quand elle sort en dehors la zone. (onmouseover et onmouseout)
Maintenant j'ai besoin d'integrer dynamiquement ces 2 fonctions javascript entre les balises "HEAD" dés que la page est intégralement chargée ,et de modifier la balise "BODY' pour y integrer la gestion des evenements onmouseover et onmouseout pointant vers ces 2 fonctions.
Puis dans un second temps récupérer le contenu HTML "encadré" et le transférer dans un second controle webbroser pour y etre une nouvelle fois traité ou enregistré sous la forme d'un fichier HTML.
Apparement l'insertion de script passe par la création (.....createElement("script")), ensuite l'insertion du contenu, puis se termine (..Appendchild(HTMLElement))
je n'arrive pas à inserer le contenu de mes 2 fonctions . Apparement il faut passer par mshtml, j'ai un problème de "cast"
je ne suis pas un spécialiste , pouvez-vous m'aider
Merci d'avance
jjk asprof
-
l'injection de code javascript est résolu
j'avais besoin uniquement de cela pour exemple :
Dim
head As HtmlElement = webBrowser1.Document.GetElementsByTagName("head")(0)
Dim scriptEl As HtmlElement = webBrowser1.Document.CreateElement("script")
Dim element As IHTMLScriptElement = DirectCast(scriptEl.DomElement, IHTMLScriptElement)
element.text = "function sayHello() { alert('hello') }"
head.AppendChild(scriptEl)Dim bodytag As HtmlElement = webBrowser1.Document.GetElementsByTagName("body")(0)
bodytag.SetAttribute("onmouseover", "whichElement(event); ")bodytag.SetAttribute("onmouseout", "borderoff(event); ")il me reste un problème à résoudre
Quans je teste ma page HTML dans IE8, je modifie correctement le style "outlineStyle" pour chacune des balises survolées
Par contre cette action est inopérante quand je charge cette même page HTML dans le controle Webbrowser.(sans effectuer aucune modification du contenu)
Pouvez-vous m'aider
Merci d'avance
JJK
- Marqué comme réponse Alex Petrescu lundi 10 janvier 2011 09:50
-
il me reste un problème à résoudre
Quans je teste ma page HTML dans IE8, je modifie correctement le style "outlineStyle" pour chacune des balises survolées
Par contre cette action est inopérante quand je charge cette même page HTML dans le controle Webbrowser.(sans effectuer aucune modification du contenu)
Pouvez-vous m'aider
Merci d'avance
JJK
Bonjour JJK
Le code ce trouve dans le Load ? ou dans le chargement de la page ?
Si je comprend bien avec IE8 vous faite de l'automation ? et par la suite vous le faite avec le Webbrowser ?
Cordialement, Troxsa