我有以下代码:
objIE.Document.All.a_l_1.click
但我想做这样的事情:
objIE.Document.All. & some_var & .click
我有以下代码:
objIE.Document.All.a_l_1.click
但我想做这样的事情:
objIE.Document.All. & some_var & .click
您可以document.all
按名称访问集合的元素,例如:
document.all("a_l_1").click
所以不需要Execute
or 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
如果月相不干扰,所有“工作”。
评估是你想要的。它允许您以字符串形式评估 VBScript,然后当然可以根据需要创建该字符串。例如:
Dim myElement, evalResult
myElement = "a_l_1"
evalResult = Eval("objIE.Document.All." & myElement & ".click")