0

我有以下代码:

objIE.Document.All.a_l_1.click

但我想做这样的事情:

objIE.Document.All. & some_var & .click
4

2 回答 2

2

您可以document.all按名称访问集合的元素,例如:

document.all("a_l_1").click

所以不需要Executeor Eval()

更新:

这个.HTA:

<html>
 <!-- !! http://stackoverflow.com/questions/14595716/using-variables-in-commands-vbscript
 -->
 <head>
  <title>VariableDemo</title>
  <HTA:APPLICATION
    APPLICATIONNAME="VariableDemo"
  >
  <SCRIPT Language="VBScript">
   Sub AClick()
     Report document.all.bttA
     Dim sBtt
     For Each sBtt In Array("bttB", "bttC")
         document.all(sBtt).click
     Next
   End Sub
   Sub XClick(bttX)
     Report bttX
   End Sub
   Sub Report(bttX)
     document.all("txtA").innerText = bttX.innerText & ": " & Now() & vbCrLf & document.all("txtA").innerText
   End Sub
  </SCRIPT>
 </head>
  <body>
   <form>
    <button id="bttA" onclick="AClick">A</button>
    <button id="bttB" onclick="XClick Me">B</button>
    <button id="bttC" onclick="XClick Me">C</button>
    <br />
    <textarea id="txtA" rows="15" cols="40"></textarea>
   </form>
 </body>
</html>

'输出'

证明了

Report document.all.bttA                - access via named property

document.all("txtA").innerText = ...    - access via string literal

For Each sBtt In Array("bttB", "bttC")  - access via variable
    document.all(sBtt).click

如果月相不干扰,所有“工作”。

于 2013-01-30T06:24:39.723 回答
0

评估是你想要的。它允许您以字符串形式评估 VBScript,然后当然可以根据需要创建该字符串。例如:

Dim myElement, evalResult
myElement = "a_l_1"
evalResult = Eval("objIE.Document.All." & myElement & ".click")
于 2013-01-30T02:54:33.287 回答