Modifique HTML en una ventana de Internet Explorer usando external.menuArguments
-
04-07-2019 - |
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.