TWebBrowser显示的网页中按下提交按钮进行:get ,生成的url(相对也可)如何取得?(168分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
比如在google中输入Delphi,生成的是
http://www.google.com/search?q=%27delphi%27&ie=UTF-8&oe=UTF-8&hl=zh-CN&lr=
在TWebBrowser显示的某网页按下提交(get),生成的url应该与之类似。
问题是如何在Delphi应用程序中得到?

<form name="form1" method="get" action="">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="110" class="pt11t" height="25">正文关键字:</td>
<td height="25" width="110">
<input type="text" name="textfield" size="12">
</td>
<td height="25" width="80">  </td>
</tr>
<tr>
<td width="110" class="pt11t" height="25">标题关键字:</td>
<td height="25" width="110">
<input type="text" name="textfield2" size="12">
</td>
<td height="25" width="80">
<input type="image" border="0" name="提交" src="images/index_13.gif" width="70" height="19">
</td>
</tr>
</table>
</form>
 
嗨!
这小子的这几分可不容易领。
答案如下
procedure TForm1.WebBrowser1CommandStateChange(Sender: TObject;
Command: Integer; Enable: WordBool);
begin
edit1.Text := WebBrowser1.LocationURL;
end;
 
你可以自己生成啊,它的生成是有规律的。
在“提交”的单击事件中,用 JScript 脚本生成该 URL,然后转向。
类似这样:

<input type="image" border="0" name="提交" src="images/index_13.gif"
width="70" height="19" onClick="location.href=makeURL(this.form);">

function makeURL(obj)
{
// 在这里,遍历 obj 这个 form 的每个域,然后生成 URL
return newURL;
}

至于生成的规则,可以自己多试几个,就可以看出来,反正就是把各个域的名字
和内容用特殊的符号联接起来。你可以自己先用 IE 打开这个 ASP 文件,看看
URL 的样子,然后改动某个域的名字或内容、或增删域,再看,应该不难,就是
复杂一点:)
 
程云下手真快:)
 
我手不快呀,我是先在OICQ上问清他想要什么
然后才下的手,差一点让你抢跑。

:-)

它只是要一个IE的HTTP请求的字符串而已
呵呵,
 
//我是先在OICQ上问清他想要什么
我也是啊:) 所以还是你快:)

啊?难道我问错了?:(
我问的时候他说要用静态网页代替动态的。没提到 Delphi ……
 
to beta:
这你就得问他了,
可能他同时问了两个问题吧
:-)
 
怎么就我们两个在说啊,老千哪里去了?:)
哦,据说照片已经洗出来了?:)
 
嗨,2点多钟我出去买相机,才回来,没抢到:(
照片?
老千也来北京了?
 
老千不是到北京好长时间了吗?:)
 
提交的时候TWebBrowse响应BeforeNavigate2事件,在该事件中,取其参数值URL便可得到
你要的东西,同时可设置Cancel为True来取消链接

这个事件是常用的,也是非常好用的
特别是在利用HTML作为程序界面,通过上面的链接打开程序的Form时会用到
 
你们帮帮忙也看看我的问题罢,我给的分比老千多哦[:D]
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1280870
 
29号的OICQ,今天才看到,晕~
 
29号,今天才看到 :)
 
要 encode 一下。
 
老千这个小问题,竟然劳动了这么多大侠们。
他的老脸也不红上一红。

to beta:
洗出来了,我这里的扫描仪有问题,等这个周未老丁来我这里取走
用他的扫描了再给你寄去。
 
呵呵,程云,我用的解决方法更是兴师动众,
httpserver,udp等一大堆,与上面的两条(你和beta说的)
不太一样。不过效果还满意。

ps:现在什么社会了,大姑娘网上征婚的年代,问个问题有
什么大不了,少见多怪,切[:D]
 
晓茶~~救命啊,上次你给我那个HOOK的例子我找不到了,FOXMAIL邮箱崩溃,丢了好多信,再发一个吧。多谢啦!
 
多人接受答案了。
 
后退
顶部