2010-12-04 65 views
0

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

注入我使用的方法是在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();"]; 

没有成功,任何人都可以给我一些光主题? 谢谢!

+0

我只想说,三年后的今天我有同样的问题。 – Morkrom 2013-04-29 21:27:24

回答

1

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

我的问题是你为什么这样做。如果你想代表用户提交表单数据到某个服务器,为什么不只是使用POST请求直接发送信息到服务器?当你得到响应时,你可以解析它并运行一些其他代码,或者你可以将HTML引入UIWebView。它消除了你正在做的所有JavaScript hackery,并产生了一个结果,这对用户来说会更加令人愉快,我敢肯定。

+1

是的,我第一次尝试去使用POST请求,但它并没有像我期望的那么向前,我想尽快解决这个问题,我会尝试发送触摸事件来解决此问题,而我不会如何发送一个正确的POST ...顺便说一句,我已经问过关于POST问题的帮助之前(http://stackoverflow.com/questions/4298456/http-post-request-html-form-input-login-user-密码浏览器模拟)如果你能给我一些关于这个问题的指针,我将非常感激! :p我认为该网站使用ASP.NET,它会产​​生一些令人讨厌的html/javascript ...:\ – lm2s 2010-12-05 04:42:31