如何用vbscript获取网页中多个Img对象

lifangmingfc 2006-05-19 10:49:08
下面是一段用vbscript获取网页中Img对象的代码,请各位大侠帮忙看看问题出在哪里
<TABLE width="220" align="center" >
<tr>
<TD>
<Img ID="Img" Width="220" Height="165" Border="0" >
</TD>
<tr>
<TD >
<Img ID="TempImg" Width="1" Height="1" Border="0">
</TD>
</tr>
<TR>
<TD>
<Img ID="TpImg" Width="1" Height="1" Border="0">
</TD>
</tr>
</TABLE>
<Script Language="VBScript">
Dim Img,TempImg,TpImg,i,Image()

Image()=document.getElementsByTagName("Img")
for i=0 to UBound(Image,0)
if Image(i)="Img" then Img=Image end if
if Image(i)="TempImg" then TempImg=Image end if
if Image(i)="TpImg" then TpImg=Image end if
next
</Script>
...全文
192 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifangmingfc 2006-05-20
  • 打赏
  • 举报
回复
谢谢eglic(圪圪) (理由永远是谎言,信仰永远是自慰) 的朋友指教!!
lifangmingfc 2006-05-20
  • 打赏
  • 举报
回复
原本的意思是在网页中添加一个幻灯片式的图片新闻,因为在这个页面中有多个“IMG”元素,所以在页面中要对显示幻灯图片的IMG对象进行定位,在没有用
Dim Images,Image,Img,TempImg

Set Images=document.getElementsByTagName("img")
'MsgBox Images.Length
for Each Image In Images

if Image.id="Img" then
set Img=Image

end if
if Image.id="TempImg" then
set TempImg=Image

end if
next
这段代码(主要是用来定位ID为Img的对象)时,提示错误“找不到‘Img’对象”在添加这代码后能正常定位'Img'对象,但是在显示第二张图片时提示“发生意外”不知为什么。
在以前用'Img=document.getElementsByName("Img")
'TempImg=document.getElementsByName("IMG")这两句定位时,能显示幻灯图片,但是下面的文字却和图片套不起来。好象是第一张图片连续显示了两次,而图片的文字说明正常切换,所以图片和图片说明不能同步,原代码如下:其中幻灯片效果是借用别人的代码
<SCRIPT language="VBScript">
Dim FileList,FileListArr,TxtList,TxtListArr,LinkList,LinkArr
FileList = "<%=mm_temp1%>" '图片的路径列表
LinkList = "<%=mm_temp2%>" '链接列表
TxtList = "<%=mm_temp3%>" '图片说明
FileListArr = Split(FileList,",")
LinkArr = Split(LinkList,",")
TxtListArr = Split(TxtList,",")
Dim CanPlay
CanPlay = CInt(Split(Split(navigator.appVersion,";")(1)," ")(2))>5
Dim FilterStr
FilterStr = "RevealTrans(duration=2,transition=23)"
FilterStr = FilterStr + ";BlendTrans(duration=2)"
If CanPlay Then
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.Pixelate(,enabled=false,duration=2,maxSquare=25)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.Fade(duration=2,overlap=0)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.GradientWipe(duration=2,gradientSize=0.25,motion=forward )"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.Stretch(duration=2,stretchStyle=PUSH)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.Wheel(duration=2,spokes=16)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.RandomDissolve(duration=2)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.Spiral(duration=2,gridSizeX=50,gridSizeY=50)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.Slide(duration=2,bands=1,slideStyle=SWAP)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.RadialWipe(duration=2,wipeStyle=CLOCK)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.Pixelate(MaxSquare=15,Duration=1)"
FilterStr = FilterStr + ";progid:DXImageTransform.Microsoft.Wipe(duration=3,gradientsize=0.25,motion=reverse)"
Else
Msgbox "幻灯片播放具有多种动态图片切换效果,但此功能需要您的浏览器为IE5.5或以上版本,否则您将只能看到部分的切换效果。",64
End If
Dim FilterArr
FilterArr = Split(FilterStr,";")
Dim PlayImg_M
PlayImg_M = 5 * 1000 '切换时间(毫秒)
Dim mmm
mmm = 1
Sub ChangeImg
Do While FileListArr(mmm)=""
mmm = mmm + 1
If mmm>UBound(FileListArr) Then mmm = 0
Loop
Dim J4
If mmm>UBound(FileListArr) Then mmm = 0
Randomize
J4 = Int(Rnd * (UBound(FilterArr)+1))
Img.style.filter = FilterArr(J4)
Img.filters(0).Apply
Img.Src = FileListArr(mmm)
Img.filters(0).play
Link.Href = LinkArr(mmm)
Txt.filters(0).Apply
Txt.innerHTML = TxtListArr(mmm)
Txt.filters(0).play
mmm = mmm + 1
If mmm>UBound(FileListArr) Then mmm = 0
TempImg.Src = FileListArr(mmm)
TempLink.Href = LinkArr(mmm)
SetTimeout "ChangeImg", PlayImg_M,"VBScript"
End Sub
</SCRIPT>
<table cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td>
<asp:Image ID="Image1" Width="240" Runat="server" ImageUrl="../Images/ImageNews.gif"></asp:Image>
</td>
</tr>
<tr>
<td>
<TABLE width="220" align="center" style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; BORDER-BOTTOM: #cccccc 1px solid">
<TR ID="NoScript">
<TD Align="center" Style="COLOR:white">对不起,图片浏览功能需脚本支持,但您的浏览器已经设置了禁止脚本运行。请您在浏览器设置中调整有关安全选项。
</TD>
</TR>
<tr>
<TD Align="center" Style="DISPLAY:none" ID="CanRunScript"><a id="Link" target=" _blank"><Img ID="Img" Width="220" Height="165" Border="0"></a>
</TD>
<TD Style="DISPLAY:none"><a id="TempLink" target=" _blank"><Img ID="TempImg" Width="1" Height="1" Border="0"></a>
</TD>
</tr>
<TR>
<TD HEIGHT="100%" Align="center" vAlign="middle"><div ID="Txt" class="Normal" style="PADDING-LEFT: 5px; Z-INDEX: 1; FILTER: progid: DXImageTransform.Microsoft.Fade(duration=1,overlap=0)"><%=mm_topic0%></div>
</TD>
</TR>
</TABLE>
</td>
</tr>
</table>
<Script Language="VBScript">
Dim Images,Image,Img,TempImg

Set Images=document.getElementsByTagName("img")
'MsgBox Images.Length
for Each Image In Images

if Image.id="Img" then
set Img=Image

end if
if Image.id="TempImg" then
set TempImg=Image

end if
next
MsgBox Img.ID
MsgBox TempImg.ID
NoScript.Style.Display = "none"
CanRunScript.Style.Display = ""
'Img=document.getElementsByName("Img")
'TempImg=document.getElementsByName("IMG")
Img.Src = FileListArr(0)
Link.Href = LinkArr(0)
SetTimeout "ChangeImg", PlayImg_M,"VBScript"
</Script>
lifangmingfc 2006-05-20
  • 打赏
  • 举报
回复
我是个菜鸟,谢谢各位高手帮忙,先试一下
是是非非 2006-05-19
  • 打赏
  • 举报
回复
因为从你的代码里无法看出你想干什么,只能给你如下代码

<TABLE width="220" align="center" >
<tr>
<TD>
<Img ID="Img" Width="220" Height="165" Border="0" >
</TD>
<tr>
<TD >
<Img ID="TempImg" Width="1" Height="1" Border="0">
</TD>
</tr>
<TR>
<TD>
<Img ID="TpImg" Width="1" Height="1" Border="0">
</TD>
</tr>
</TABLE>
<Script Language="VBScript">
Dim Images,Img

Set Images=document.getElementsByTagName("img")
MsgBox Images.Length
for Each Img In Images
MsgBox Img.ID
next
</Script>
是是非非 2006-05-19
  • 打赏
  • 举报
回复
几个错误:
1、If .. Then .. End If 不可以写在一行上
2、getElementsByTagName返回的不是一个数组,而是一个集合对象
3、集合对象不可以用处理数组的方法来遍历

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧