我已成功将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();"];
没有成功,任何人都可以就这个问题给我一些启示? 谢谢!
答案 0 :(得分:1)
我无法告诉你为什么点击不起作用 - 虽然它很容易成为iOS开发团队的故意安全限制 - 但可能有另一种方法来解决你的问题。
我的问题是你这样做的原因。如果您想代表用户将表单数据提交到某个服务器,为什么不只是使用POST请求直接将信息发送到服务器?当你得到响应时,你可以解析它并运行一些其他代码,或者你可以将HTML抛出到UIWebView中。它消除了你所做的所有javascript hackery并产生了一个让用户更加满意的结果,我敢肯定。