iOS UIWebView - 自动化FORM按钮上的click()..怎么样?

时间:2010-12-04 17:31:22

标签: javascript ios uiwebview html-form

我已成功将javascript注入我的UIWebView并成功更改了我想使用下面方法的文本字段中的值。现在我想自动化HTML表单按钮中的点击,但是没有成功,似乎按钮被禁用,直到它收到触摸事件,并且只有第二次触摸事件才提交HTML表单,这就是为什么我注入的JS'click()'方法不起作用?我怎样才能使它发挥作用?

我使用的注射方法在this page

中描述

我用过这个:[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('ctl00_SPWebPartManager1_g_cb264700_1517_426f_926d_3ca40934a6fd_ctl00_EditModePanel1_btnLogin.click();');"];

还有:

    [webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
 "script.type = 'text/javascript';"
 "script.text = \"function x_LogBtn() { "
 "var field = document.getElementById('ctl00_SPWebPartManager1_g_cb264700_1517_426f_926d_3ca40934a6fd_ctl00_EditModePanel1_btnLogin');"
 "field.click();"
 "}\";"
 "document.getElementsByTagName('head')[0].appendChild(script);"];
[webView stringByEvaluatingJavaScriptFromString:@"x_LogBtn();"];

没有成功,任何人都可以就这个问题给我一些启示? 谢谢!

1 个答案:

答案 0 :(得分:1)

我无法告诉你为什么点击不起作用 - 虽然它很容易成为iOS开发团队的故意安全限制 - 但可能有另一种方法来解决你的问题。

我的问题是你这样做的原因。如果您想代表用户将表单数据提交到某个服务器,为什么不只是使用POST请求直接将信息发送到服务器?当你得到响应时,你可以解析它并运行一些其他代码,或者你可以将HTML抛出到UIWebView中。它消除了你所做的所有javascript hackery并产生了一个让用户更加满意的结果,我敢肯定。