Modificar HTML em uma janela do Internet Explorer usando external.menuArguments
-
04-07-2019 - |
Pergunta
Eu tenho uma classe VB.NET que é invocada com uma extensão de menu de contexto no Internet Explorer.
O código tem acesso ao modelo de objeto da página, e leitura de dados não é um problema. Este é o código de uma função de teste ... ele muda o texto da barra de status (OK), imprime a página HTML (OK), altera o HTML, adicionando um texto e imprime novamente a página HTML (OK, na segunda pop- o meu texto adicionado é no HTML)
Mas a janela do Internet Explorer não mostrá-lo. Onde estou fazendo de errado?
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
A função é chamada assim de JavaScript:
<script>
var EB = new ActiveXObject("MyObject.MyClass");
EB.CallingTest(external.menuArguments);
</script>
Nenhuma solução correta
Outras dicas
Para o melhor de meu entendimento, a fim de utilizar insertAdjacentText ou qualquer um dos outros métodos de edição, o objeto documento deve estar no modo de design. No modo de design, você pode editar o documento livremente, e por isso pode o usuário. Verifique neste site para mais detalhes
Eu não acho que o Alex está certo, outra coisa é a questão.
Quando eu tentei fazer algo parecido, insertBefore não funcionaria para mim, mas appendChild funcionou muito bem, por isso, adicionando um elemento é possível.
Eu trabalhei em Javascript, mas eu não espero que isso faz a diferença.