在命令VBscript中使用变量

时间:2013-01-30 02:29:23

标签: internet-explorer variables vbscript concatenation

我有以下代码:

objIE.Document.All.a_l_1.click

但我想做这样的事情:

objIE.Document.All. & some_var & .click

2 个答案:

答案 0 :(得分:2)

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

document.all("a_l_1").click

因此,无需ExecuteEval()

<强>更新

这个.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>

'output'

演示

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
如果月亮的相位没有干扰,那么所有的“工作”。

答案 1 :(得分:0)

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

Dim myElement, evalResult
myElement = "a_l_1"
evalResult = Eval("objIE.Document.All." & myElement & ".click")