vb网页编程
我想在一个页面中实现在input中传递字符串并模拟发送,代码如下:
Private Sub Command2_Click()
Dim Mydo1, MyAl1
Set Mydo1 = WebBrowser1.Document
For p = 0 To Mydo1.All.length - 1
If Mydo1.All(p).Type = "text" And Mydo1.All(p).name = "q" Then
Set MyAl1 = Mydo1.All(p)
MyAl1.Value = Text3.Text: MsgBox "a"
ElseIf Mydo1.All(p).Type = "submit" And Mydo1.All(p).Value = "发布" Then
MyAl1.Click
MsgBox "b"
Exit Sub
End If
Next p
End Sub
我的问题是,为什么老是提示“对象不支持该属性或方法”,错误指向If Mydo1.All(p).Type = "text" And Mydo1.All(p).name = "q" Then这一句
附带源码给大家吧
<input stats="Hd_sInput" type="text" size="25" maxlength="100" id="navSearchInput" name="q" class="input-text" value="" tabindex="1" />
<input stats="Pub_Send" type="submit" value="发布" disabled="disabled" class="submit" id="publisher_submit"
[解决办法]
我发现你的代码问题所在了,你看:
If Mydo1.All(p).Type = "text" And Mydo1.All(p).name = "q" Then
你不应该在遍历所有DOM元素时,第一步去判断Type属性,这个不是所有元素都有的啊,比如td好像就没有吧.根据你这里的需求,第一个条件你可判断tagName是不是INPUT(是不是应写成大写建议你测试一下),这个tagName属性是所有HTMLElement都有的
If Mydo1.All(p).tagName= "INPUT" and Mydo1.All(p).Type = "text" And Mydo1.All(p).name = "q" Then
另外,你也可以先用getElementsByName取所有的INPUT元素集合来遍历啦:)