обнаружить событие в IE из Visio - PullRequest
       16

обнаружить событие в IE из Visio

0 голосов
/ 12 сентября 2011

Могу ли я иметь ссылку между кнопкой на странице IE и событием visio? (например: изменение цвета фигуры простым нажатием кнопки на странице IE)

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

Не очень просто, если у вас нет доступа к HTML-содержимому в IE, но вы можете использовать класс VBA, который реализует закрытую переменную «withevents» для захвата ссылки на определенный элемент на странице и который имеет обработчик событий для ответа на события в браузере. Например. в классе "clsHTML":

Private WithEvents el As MSHTML.HTMLInputElement

Public Sub SetElement(t As MSHTML.HTMLInputElement)
    Set el = t
End Sub

Private Function el_onchange() As Boolean
    Debug.Print "captured change: value = " & el.Value
End Function 

В другом коде создайте экземпляр класса и вызовите «SetElement», используя ссылку на элемент на странице в IE:

Dim objHTML As clsHTML  'global variable


Sub TestEvents()
   Dim IE As Object

    'set up your IE reference....

  Set objHTML = New clsHTML
  objHTML.SetElement IE.document.getElementById("tester2")
  Debug.Print "set capture"
End Sub

В этом случае вы захватываете событие «изменить» в текстовом поле, но другие элементы будут отображать другие события ...

Редактировать: я тестировал это в Excel, но я предполагаю, что нечто подобное будет работать и в Visio.

Edit2: вам, вероятно, было бы гораздо лучше создать форму в Visio, чтобы справиться с этим, чем придерживаться автоматизации IE.

0 голосов
/ 12 сентября 2011

да, вы должны проверить документацию по началу работы с jquery

html:

<button id="mybutton" />
<div id="myshape">blabla</div>

JavaScript:

$('#mybutton').click(function() {
    $('#myshape').css('background-color', '#555555');
});
...