当前位置:编程学习 > VB >>

网页中INPUT搜索框的问题呀。。。囧~

话说网页中有个搜索文本框,代码如下
 <input  id="KeyWord"  name="KeyWord" type="text" value="" search="1"/>

正常是有些灰色的默认字体的:“请输入关键词”

要输入关键词,只要点一下搜索文本框。焦点在搜索文本框上后,灰色字体消失,才能输入你的关键词


于是 我想用VB做这个效果

1。 先聚焦到这个文本框上, 这个没问题。
2。 给这个文本框的VALUE赋值。就是赋值不了啊

Set vTag = WebBrowser1.Document.getElementsByTagName("input")
vTag(4).FOCUS
vTag(4).Value = "ABCDEFG"

上面只能实现聚焦,不能实现赋值。。。。求助哦 --------------------编程问答-------------------- 用 getElementById 或 getElementsByName 试试 --------------------编程问答-------------------- 发现一个问题, 下面的语句,不要vTag(4).FOCUS 就能实现vTag(4).Value = "ABCDEFG" 
但是两者同时用的话,就不行。只能实现vTag(4).FOCUS, 下面的语句不起作用了。

Set vTag = WebBrowser1.Document.getElementsByTagName("input") 
vTag(4).FOCUS 
vTag(4).Value = "ABCDEFG"  --------------------编程问答--------------------
WebBrowser1.Document.getElementById("KeyWord").Value = "ABCDEFG"
--------------------编程问答-------------------- 不行的。网页里面有2个这样的搜索框啊。楼上的句子,实现的是给第一个搜索框输入文字。。。我要的是第二个搜索框。
vTag(4).Value = "ABCDEFG"  '里面的(4)就是说明我要找的搜索框在网页元素里面的位置啊 --------------------编程问答-------------------- 不过按照你的思路, 我使用WebBrowser1.Document.getElementsByName("KeyWord").Value = "ABCDEFG", 结果跟我第一个方法是一样的。
聚焦能实现,赋值不能实现。
不加聚焦语句的时候,赋值才可以实现。。。为什么呢 --------------------编程问答-------------------- 你为什么要聚焦?直接赋值跟你看不看得到灰色有什么关系 --------------------编程问答-------------------- 咳。。。都怪我没把事情说明白。听我慢慢道来。。。。

1. 打开网页,搜索框里面有默认灰色的字 :“请输入关键词” 
2. 如果你这个时候点搜索,这些灰色的字就会消失,于是变成搜索空白了

3. 如果你使用赋值,例如语句vTag(4).Value = "ABCDEFG"  那么字体也是灰色的
4. 同理,你赋值了vTag(4).Value = "ABCDEFG", "ABCDEFG"就是灰色的。 点搜索,"ABCDEFG" 就消失,于是,再次搜索空白。


5. 我就开始想了,那我先聚焦这个文本框先吧。 于是我使用了vTag(4).FOCUS 
6. 但是使用了vTag(4).FOCUS吧 是成功啊,但是vTag(4).Value = "ABCDEFG" 这个句子又不能赋值了。

以上就是我的痛苦经历。。。哈哈哈哈

--------------------编程问答-------------------- 试试这样,看能中不??
vTag(4).FOCUS 
sendkys "ABCDEFG"  --------------------编程问答-------------------- 这样?
Set vTag = WebBrowser1.Document.getElementsByTagName("input") 
vTag(4).Click 
vTag(4).Value = "ABCDEFG"


________
问题解决后一定要结帖啊 --------------------编程问答-------------------- 这个我试过了。。。还是无效的呀

引用 9 楼 s11ss 的回复:
这样?
Set vTag = WebBrowser1.Document.getElementsByTagName("input")
vTag(4).Click
vTag(4).Value = "ABCDEFG"


________
问题解决后一定要结帖啊
--------------------编程问答--------------------
引用 8 楼 zydscaline 的回复:
试试这样,看能中不??
 vTag(4).FOCUS
 sendkys "ABCDEFG"
我这样就成功过啊:
在内网上的一个登录页面,登录框大小有点儿问题,不能用
vTag(4).Click 
我只好用上面的方法,还行,能过
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,