Изменить HTML в окне Internet Explorer, используя external.menuArguments - PullRequest
3 голосов
/ 27 октября 2008

У меня есть класс VB.NET, который вызывается с расширением контекстного меню в Internet Explorer.

Код имеет доступ к объектной модели страницы, и чтение данных не является проблемой. Это код тестовой функции ... он изменяет текст строки состояния (OK), печатает HTML-страницу (OK), изменяет HTML, добавляя текст, и снова печатает HTML-страницу (OK, во втором всплывающем мой добавленный текст в 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 голосов
/ 29 апреля 2009

Не думаю, что Алекс прав, дело в другом.

Когда я пытался сделать что-то подобное, insertBefore у меня не работал, но appendChild работал просто отлично, поэтому добавление элемента возможно.

Я работал в Javascript, но не думаю, что это что-то меняет.

0 голосов
/ 05 ноября 2008

Насколько я понимаю, для использования insertAdjacentText или любого другого метода редактирования объект документа должен находиться в режиме конструктора. В режиме разработки вы можете свободно редактировать документ, как и пользователь. Проверьте этот сайт для более подробной информации

...