繁体   English   中英

从visio检测IE上的事件

[英]detect event on IE from visio

我可以在IE页面上的按钮和visio事件之间建立链接吗? (例如:仅通过单击IE页面上的按钮即可更改形状的颜色)

是的,您应该查看jquery的入门文档。

html:

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

javascript:

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

除非您也可以访问IE中的HTML内容,否则并不是很容易,但是您可以使用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 

在其他代码中,创建该类的实例,并使用对IE中页面上元素的引用来调用“ SetElement”:

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更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM