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