2008-10-27 8 views
3

J'ai une classe VB.NET appelée avec une extension de menu contextuel dans Internet Explorer.Modifier le code HTML dans une fenêtre Internet Explorer à l'aide de external.menuArguments

Le code a accès au modèle d'objet de la page, et la lecture des données n'est pas un problème. C'est le code d'une fonction de test ... il change le texte de la barre d'état (OK), imprime la page HTML (OK), modifie le HTML en ajoutant un texte et imprime à nouveau la page HTML (OK, dans la deuxième mon texte ajouté est dans le code HTML)

Mais la fenêtre Internet Explorer ne l'affiche pas. Où est-ce que je fais mal?

Public Sub CallingTest(ByRef Source As Object) 
    Dim D As mshtml.HTMLDocument = Source.document 
    Source.status = "Working..." 
    Dim H As String = D.documentElement.innerHTML() 
    MsgBox(H) 
    D.documentElement.insertAdjacentText("beforeEnd", "ThisIsATest") 
    H = D.documentElement.outerHTML() 
    MsgBox(H) 
    Source.status = "" 
End Sub 

La fonction est appelée comme celui-ci à partir de JavaScript:

<script> 
    var EB = new ActiveXObject("MyObject.MyClass"); 
    EB.CallingTest(external.menuArguments); 
</script> 

Répondre

0

Au meilleur de ma connaissance, afin d'utiliser insertAdjacentText ou l'une des autres méthodes d'édition, l'objet document devrait être dans la mode de conception. En mode conception, vous pouvez modifier le document librement, tout comme l'utilisateur. Vérifiez this site pour plus de détails

0

Je ne pense pas que Alex a raison, quelque chose d'autre est la question.

Lorsque j'ai essayé de faire quelque chose comme ça, insertBefore ne fonctionnerait pas pour moi, mais appendChild a bien fonctionné, donc l'ajout d'un élément est possible.

J'ai travaillé en Javascript, mais je ne pense pas que cela fasse une différence.

Questions connexes