函数参考


_IEFormSubmit

提交指定表单.

#include <IE.au3>
_IEFormSubmit ( ByRef $o_object [, $f_wait = 1] )

参数

$o_object InternetExplorer.Application, 表单对象的对象变量
$f_wait [可选参数]: 指定是否在返回前等待页面加载
0 = 立即返回, 不等待加载页面
1 = (默认)返回前等待页面完成加载

返回值

成功: 返回-1
失败: 返回 0 并且设置 @ERROR
@Error: 0 ($_IEStatus_Success) = 无错误
1 ($_IEStatus_GeneralError) = 一般性错误
3 ($_IEStatus_InvalidDataType) = 无效数据类型
4 ($_IEStatus_InvalidObjectType) = 无效对象类型
6 ($_IEStatus_LoadWaitTimeout) = 加载等待超时
7 ($_IEStatus_NoMatch) = 无匹配
8 ($_IEStatus_AccessIsDenied) = 拒绝访问
9 ($_IEStatus_ClientDisconnected) = 客户端断开
@Extended: 包含无效参数数量

注意/说明

对许多HTML表单不足以使用_IEFormSubmit()因为有大量自定义JavaScript对于提交按钮使用onClick事件. 在此情况下将必须模拟点击提交按钮以替代使用_IEFormSubmit(). 见_IEAction()示例的"click"操作.
同样, 一些表单操作依赖于其它表单元素传递的提交按钮的"value"(经常出现在不止一个提交按钮并且用于提交不同的结果). 函数无法传递提交按钮的值. 解决方法是使用如上的_IEAction()的"click"操作.
如果在默认调用自动的_IELoadWait时出现问题, 设置$f_wait参数为0并通过你的脚本调用_IELoadWait, 并传递到InternetExplorer对象.

相关

_IEFormReset, _IEFormGetObjByName, _IEFormGetCollection, _IEFormElementGetObjByName, _IEFormElementGetCollection, _IELoadWait

示例/演示


; *******************************************************
; 示例 1 - 打开带表单示例的浏览器, 填写表单字段并提交
; *******************************************************

#include <IE.au3>

Local $oIE = _IE_Example("form")
Local $oForm = _IEFormGetObjByName($oIE, "ExampleForm")
Local $oText = _IEFormElementGetObjByName($oForm, "textExample")
_IEFormElementSetValue($oText, "Hey! It works!")
_IEFormSubmit($oForm)

; *******************************************************
; 示例 2 - 获取指定表单的引用并设置值.
;               该例中, 向Google搜索引擎提交请求
; *******************************************************

#include <IE.au3>

$oIE = _IECreate("http://www.google.com")
$oForm = _IEFormGetObjByName($oIE, "f")
Local $oQuery = _IEFormElementGetObjByName($oForm, "q")
_IEFormElementSetValue($oQuery, "AutoIt IE.au3")
_IEFormSubmit($oForm)

; *******************************************************
; 示例 3 - 获取指定表单的引用并设置值.
;               遇到困难时手工调用_IELoadWait.
; *******************************************************

#include <IE.au3>

$oIE = _IECreate("http://www.google.com")
$oForm = _IEFormGetObjByName($oIE, "f")
$oQuery = _IEFormElementGetObjByName($oForm, "q")
_IEFormElementSetValue($oQuery, "AutoIt IE.au3")
_IEFormSubmit($oForm, 0)
_IELoadWait($oIE)