Question

J'utilise un navigateur Web dans mon projet actuel et je l'utilise actuellement en mode conception pour le rendre modifiable, etc. Le code que j'utilise actuellement est le suivant:

WebBrowser.Document.DomDocument as IHTMLDocument2

Qu'est-ce qu'un IHTMLDocument2, 3 ou 4? J'ai également constaté que lors de l'identification d'une plage de sélection actuelle dans le document, la méthode range.text.replace ne fonctionnait pas de la même manière qu'un string.replace.

Quelqu'un peut-il m'expliquer les fonctionnalités de base des documents IHTMLDocuments et IHTMLTxtRange, s'il vous plaît?

Était-ce utile?

La solution

IHTMLDocument est une interface qui est essentiellement une "incassable". contrat qui représente ce que l'objet qui l'implémentera fournira.

La modification de l'interface lors du passage à une nouvelle version du code romprait le contrat en cours, ainsi que le code reposant sur ce contrat.

Supposons que vous créez:

public interface IMyInterface {
      public int Property1 { get;  set; }
}

Un an plus tard, vous devez ajouter Property2 mais vous ne pouvez pas modifier votre interface. Donc, une solution consiste à créer:

public interface IMyInterface2 {
    public int Property2 { get;set; }
} 

puis avec votre ancienne classe qui implémente IMyInterface:

public class MyObject : IMyInterface, IMyInterface2 {
    public int Property1 { get {} set {} }
    public int Property2 { get {} set {} }
}

Ensuite, vous ne rompez pas l'ancien contrat, mais vous pouvez utiliser la nouvelle interface dans un code tel que:

if (obj is IMyInterface) {
   Console.WriteLine(((IMyInterface)obj).Property1);

   if (obj is IMyInterface2) {
      //more
   }
}

C’est donc ce que Microsoft a fait. La bibliothèque mshtml dans laquelle se trouve IHTMLDocument est une bibliothèque COM, qui s'appuie fortement sur les interfaces. Au fur et à mesure de l'évolution de la bibliothèque, Microsoft a ajouté de plus en plus d'interfaces pour exposer les nouvelles fonctionnalités / codes.

IHTMLTxtRange est une interface pour le TextRange plus couramment utilisé. objet. Il expose de nombreuses fonctionnalités pour analyser le texte " Fragments " ou "gammes".

http://www.webreference.com/js/column12/trmethods.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top