在上一回文章http://blog.csdn.net/favormm/article/details/6603923介绍了如何inject javascriopt 到UIWebView。 其实注入的目的就是为了利用, 今天介绍的就是如何修改网页中已有element的action, 会展示一个实例,如何修改html中button的点击事件。
在html中显示一个button的代码如下:
<input id="myButton1" name="cancel" type="button" value="Click me!" />
button都是用来响应事件的,下面代码是向button加入一个点击事件
<input id="myButton1" name="cancel" type="button" value="Click me!" οnclick="showAlert()" /><br/>
这句话的意思就是点击一下button就会调用showAlert()这个javascript 方法。
UIWebView可以显示网页,那么我们可不可以修改已有网页中button的点击事件呢? 其实可以!如何做呢?用javascript就可以做到,下面我将修改这个button的点击事件为其它方法。
第一步:按照上一回文章中介绍的方法注入js, 内容如下:
function clickLink() {
alert('alread inject alert');
}
function changeButtonAction()
{
//document.getElementsByName('cancel')[0].οnclick=function(){alert('alread inject alert');};
document.getElementById('myButton1').οnclick=function(){clickLink();};
}
第二步:在
- (void)webViewDidFinishLoad:(UIWebView *)webView
{}方法中调用注入的js
[theWebView stringByEvaluatingJavaScriptFromString:@"changeButtonAction();"];
这样在你的UIWebView中显示的时候,那myButton1的点击事件就修改为你的方法了。
javascript真的很有用啊。