Modifier le code HTML dans une fenêtre Internet Explorer à l'aide de external.menuArguments

StackOverflow https://stackoverflow.com/questions/240419

Question

J'ai une classe VB.NET appelée avec une extension de menu contextuel dans Internet Explorer.

Le code a accès au modèle d'objet de la page et la lecture des données ne pose pas de problème. C’est le code d’une fonction de test ... 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 fenêtre). mon texte ajouté est dans le HTML)

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

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 s'appelle comme ça depuis JavaScript:

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

Pas de solution correcte

Autres conseils

Autant que je sache, pour pouvoir utiliser insertAdjacentText ou l'une des autres méthodes d'édition, l'objet de document doit être en mode création. En mode Création, vous pouvez modifier le document librement, de même que l'utilisateur. Consultez ce site pour plus de détails

Je ne pense pas qu'Alex a raison, il y a autre chose qui compte.

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

J'ai travaillé en Javascript, mais je ne m'attends pas à ce que cela fasse une différence.

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