none
Modifier texte d'une page HTML, webBrowser RRS feed

  • Question

  • Salut à tous

    Je suis en train de faire un programme qui consiste à reperer une liste de mots dans une page HTML. Pour ce faire j'ai utilisé le composant webBrowser.
    J'affiche la page et je fais par exemple :

    Code :
    webBrowser1.Document.Body.InnerHtml=webBrowser1.Document.Body.InnerHtml.Replace("dans", "<B> dans </B>");
     
    Cela fonctionne parfaitement, les mots sont en BOLD.

    Le problème est que mes liens deviennent innaccessibles apres ce changement. Du moins certains liens le sont et d'autres fonctionnent.

    Se sont des pages en aspx sur lesquelles je travaille. Lorsque je clique sur le lien, j'ai une erreur de script.

    J'ai poussé mes recherches un peu plus loin et j'ai comparé une source HTML d'une page modifiée (mots en bold) et l'autre juste avant l'application de ce filtre.

    Je remarque une chose :les liens du source qui ne fonctionnent pas sont en absolu sur le fichier filtré, alors qu'ils sont en relatif sur le non filtré (celui qui fonctionne quoi qu'il arrive).

    Auriez vous des propositions a me faire ?

    Mon programme est vriament simple mais ce problème m'enquiquine depuis ce matin !

    Merci pour vos réponse
    vendredi 14 mars 2008 22:12

Toutes les réponses

  •  

    Malheureusement c'est normal (http://msdn2.microsoft.com/en-us/library/ms533897.aspx) "If the string contains HTML tags, the string is parsed and formatted as it is placed into the document."

     Suivant une suggestion que tu trouveras dans ce fil de discussion: http://www.developersdex.com/asp/message.asp?p=1824&r=5859480

    il te faut parser tout ton document pour sauvegarder le contenu des différentes href (et src pour les images), d'appliquer ton replace puis de restaurer les différentes valeurs.

    Bien sur tu ne peux pas faire ça avec innerHtml (qui te remettra systématiquement les chemins absolus) mais en parsant le DOM

     

    Si ton texte se trouve dans un élément, ça serait peut être mieux que tu attaques directement cet élément mais cela dépend de la complexité de ta page.

     

    Bon courage.

     

    mercredi 19 mars 2008 12:21