Pregunta

Tengo una clase VB.NET que se invoca con una extensión del menú contextual en Internet Explorer.

El código tiene acceso al modelo de objeto de la página, y la lectura de datos no es un problema. Este es el código de una función de prueba ... cambia el texto de la barra de estado (OK), imprime el HTML de la página (OK), cambia el HTML agregando un texto y vuelve a imprimir el HTML de la página (OK, en la segunda ventana emergente). mi texto añadido está en el HTML)

Pero la ventana de Internet Explorer no lo muestra. ¿Dónde estoy haciendo 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 función se llama así desde JavaScript:

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

No hay solución correcta

Otros consejos

A mi entender, para utilizar insertAdjacentText o cualquiera de los otros métodos de edición, el objeto de documento debe estar en el modo de diseño. En el modo de diseño, puede editar el documento libremente, al igual que el usuario. Consulte este sitio para obtener más detalles

No creo que Alex tenga razón, otra cosa es el problema.

Cuando intenté hacer algo así, insertBefore no funcionaría para mí, pero appendChild funcionó bien, así que es posible agregar un elemento.

Trabajé en Javascript, pero no creo que eso haga una diferencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top