从Mac Cocoa应用程序中提交HTML表单

时间:2012-08-30 17:48:19

标签: javascript html macos cocoa webkit

我正在使用Objective-C制作Mac应用程序,我需要它才能在网站上提交表单(好吧,按下按钮),但用户所要做的就是提供与形成。

以下是该网站的代码:

<td class=t_h>07:16</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class=t_s  height='24'>
<form method="POST" action="members_booking.php?operation=member_booking_form" onSubmit="return ValidateMemberBookNow(this)">
<INPUT NAME=double_click TYPE=hidden>
<INPUT NAME=course_id TYPE=hidden VALUE="1">
<INPUT NAME=unique_id TYPE=hidden VALUE="230693">
<INPUT NAME=d_date    TYPE=hidden VALUE="2012-09-07">
<INPUT NAME=Booking_Operation TYPE=hidden VALUE="Book Casual">
<INPUT NAME=SubmitButton TYPE=submit VALUE="Book Now">
</form>
</td>
</tr>
<tr>
<td class=t_h>07:24</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class=t_s  height='24'>
<form method="POST" action="members_booking.php?operation=member_booking_form" onSubmit="return ValidateMemberBookNow(this)">
<INPUT NAME=double_click TYPE=hidden>
<INPUT NAME=course_id TYPE=hidden VALUE="1">
<INPUT NAME=unique_id TYPE=hidden VALUE="230694">
<INPUT NAME=d_date    TYPE=hidden VALUE="2012-09-07">
<INPUT NAME=Booking_Operation TYPE=hidden VALUE="Book Casual">
<INPUT NAME=SubmitButton TYPE=submit VALUE="Book Now">
</form>
</td>
</tr>
<tr>
<td class=t_h>07:32</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class=t_s  height='24'>
<form method="POST" action="members_booking.php?operation=member_booking_form" onSubmit="return ValidateMemberBookNow(this)">
<INPUT NAME=double_click TYPE=hidden>
<INPUT NAME=course_id TYPE=hidden VALUE="1">
<INPUT NAME=unique_id TYPE=hidden VALUE="230695">
<INPUT NAME=d_date    TYPE=hidden VALUE="2012-09-07">
<INPUT NAME=Booking_Operation TYPE=hidden VALUE="Book Casual">
<INPUT NAME=SubmitButton TYPE=submit VALUE="Book Now">
</form>
</td>
</tr>
<tr>

最多可以有40个这样的块。 <td class=t_h>07:32</td>是用户指定的时间。我需要自动按下与该时间相关联的按钮。怎么样?

先谢谢你们!

1 个答案:

答案 0 :(得分:1)

这就是jQuery自成一体的问题。基本思想是使用文本t_h查找类07:32的元素。然后,在其父节点中,找到form元素并submit()

你走了:

function submitFormForTime(time){
    $(".t_h").each(function(i, obj){ // find each element with the class t_h
        if ($(this).text() != time) return; // not the right one
        $(this).parent().find("form").each(function(i, obj){
            obj.submit(); // submit that form
        });
    });
}

submitFormForTime("07:32");

将此脚本添加到网站。要从Objective-C调用此脚本,请参阅:

从上面的文档中,以下内容将调用Objective-C中的JavaScript函数:

id win = [webView yourWebView]; // assumes your webView is called yourWebView
[win evaluateWebScript:@"submitFormForTime('07:32');"];