我很努力設置網頁上一些非常尷尬的字段的值(我不控制它),請重視boffin的輸入。我做了一個模擬網頁,展示了這個問題。這裏有:VBS:div和tabIndex來自外部.vbs的目標字段
<html>
<body>
<div id="mydiv1" style="position: none; display: block; z-index: 1; width: 800px;">
<p>First div (mydiv1) starts here.</p>
<br />
<div id="mydiv2" style="position: none; display: block; z-index: 6; width: 800px;">
<p>Second div (mydiv2) starts here. The following field in blue is arranged thusly: <i>div>div>table>form>table</i>; and its tabIndex is 1.</p>
<table border="0" cellspacing="1" cellpadding="0" width="410">
<tbody>
<tr>
<td colspan="3" style="width: 410px; background-color: #5698eb;">
<form id="entryform" name="entryform">
<table border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td width="100" valign="center" class=text1">
<br /><b>Project: </b>
</td>
<td width="5"></td>
<td valign="centre">
<input class="formclass_input1" type="text" tabIndex="1" name="entryform_field">
</td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</tbody>
</table>
<br />
<div id="mydiv3" style="position: none; display: block; z-index: 16; width: 850px;">
<p>Third div (mydiv3) starts here. The following fields are arranged thusly: <i>div>div>div>form>table</i> and the tabIndexes go 1,2,3,4.<br />The field names change randomly from record to record, but their tabIndexes are always the same.</p>
<form id="myform" name="myform">
<table border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td width="100" valign="center" class=text1">
<b>Name: </b>
</td>
<td width="5"></td>
<td valign="centre">
<input class="formclass_input1" type="text" tabIndex="1" name="changeable_field_name1">
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td width="100" valign="center" class=text1">
<b>Date: </b>
</td>
<td width="5"></td>
<td valign="centre">
<input class="formclass_input1" type="text" tabIndex="2" name="changeable_field_name2">
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td width="100" valign="center" class=text1">
<b>Company: </b>
</td>
<td width="5"></td>
<td valign="centre">
<input class="formclass_input1" type="text" tabIndex="3" name="changeable_field_name3">
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td width="100" valign="center" class=text1">
<b>Address: </b>
</td>
<td width="5"></td>
<td valign="centre">
<input class="formclass_input1" type="text" tabIndex="4" name="changeable_field_name4">
</td>
</tr>
</tbody>
</table>
</form>
</div></div></div>
</body>
</html>
這裏關鍵的是字段名稱隨機變化。我先前在堆棧中提出了我的問題,但我簡化了這個問題!一個名叫Panayot的人幫助我完美地解決了這個問題,但是當我將我的修訂腳本介紹到現場時,它失敗了。因此,使這個更準確的模擬。這比我第一次提出的要複雜得多。使用Panayot的代碼,我的劇本目前看起來是這樣的:
surl ="http://[website.com]"
set ie = nothing
set shapp=createobject("shell.application")
on error resume next
For Each owin In shapp.Windows
if left(owin.document.location.href,len(surl))=surl then
if err.number = 0 then
set ie = owin
end if
end if
err.clear
Next
on error goto 0
if ie is nothing then
wscript.echo "Window Not Open"
else
Set myDiv = IE.Document.All.mydiv3
If Not myDiv Is Nothing Then
Set nodes = myDiv.childNodes
For i = 0 To nodes.Length-1 Step 2
If nodes(i).tabIndex = "1" Then
nodes(i).Value = "ta-da!"
'nodes(i).Value = nodes(i).tabIndex
Exit For
End If
Next
End If
End If
我已經嘗試了很多與它,但我不能用我有限的瞭解看着辦吧。基本上最終的IF語句不會讓我進入tabIndex「1」。如果這是可以解決的,我會成爲一個非常快樂的人。任何輸入讚賞。謝謝。
Panayot,非常感謝你。爲了解決我的問題,並一路教我,我感謝你。我希望我能做點什麼來表達我的讚賞......這對我來說是一個巨大的發展。它的作品,它很漂亮......我想我理解它。我快到那裏了。 – David 2013-04-11 20:39:27
@大衛不客氣。別擔心,有一天你可以幫我解決我的問題。 – 2013-04-11 20:59:02
我不知道,但我希望如此。再次謝謝你。 – David 2013-04-11 20:59:37