使用external.menuArguments在Internet Explorer窗口中修改HTML

时间:2008-10-27 16:00:58

标签: vb.net internet-explorer mshtml

我有一个VB.NET类,在Internet Explorer中使用上下文菜单扩展调用。

代码可以访问页面的对象模型,读取数据不是问题。这是测试功能的代码...它改变状态栏文本(OK),打印页面HTML(OK),通过添加文本更改HTML并再次打印页面HTML(好的,在第二个弹出窗口中)我添加的文字在HTML中)

但是Internet Explorer窗口没有显示它。我在哪里做错了?

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

这个函数从JavaScript中调用:

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

2 个答案:

答案 0 :(得分:0)

据我所知,为了使用insertAdjacentText或任何其他编辑方法,文档对象应该处于设计模式。 在设计模式下,您可以自由编辑文档,用户也可以。 查看this网站了解更多详情

答案 1 :(得分:0)

我不认为亚历克斯是对的,其他事情就是这样。

当我尝试做类似的事情时,insertBefore对我不起作用,但是appendChild运行得很好,所以添加元素是可能的。

我在Javascript工作,但我不认为这会有所作为。