UIWebView与JS的常用交互

在UIWebView中,我们经常遇到网页的JS不满足需求的情况,这时,我们就要在下面的这个delegate中手动注入JS代码:

- (void)webViewDidFinishLoad:(UIWebView*)theWebView  
{       
    [self.webView stringByEvaluatingJavaScriptFromString:@"JS代码"
}

常用的”JS代码”如下:
1、使页面支持缩放
首先需要webView去设置下可以支持缩放

[webView setScalesPageToFit:YES];

如果网页本身就支持缩放,那只要这一句话就够了。否则的话,还要注入JS代码:(这里是初始化为1.0;最小缩放0.5;最大缩放3.0;可根据需求修改)

@"var element = document.createElement('meta');  element.name = \"viewport\";  element.content = \"width=device-width,initial-scale=1.0,minimum-scale=0.5,maximum-scale=3,user-scalable=1\"; var head = document.getElementsByTagName('head')[0]; head.appendChild(element);"

2、禁用用户选择,复制,粘贴

@"document.documentElement.style.webkitUserSelect='none';"

3、禁用长按弹出框

@"document.documentElement.style.webkitTouchCallout='none';"

4、获得UIWebView的标题

@"document.title"

5、获得UIWebView的URL地址

@"document.location.href"

6、通过name(获得/设置)页面元素的value值

@"document.getElementsByName('email')[0].value='hello';"

7、通过id(获得/设置)页面元素的value值

@"document.getElementByIdx_x_x('email').value='hello';"

8、提交表单

@"document.forms[0].submit(); "

9、获得body与body之间的HTML

@"document.body.innerHTML"

10、改变webview尺寸时对应改变web page尺寸(web page需要有对应的处理)

[NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ",(int)webview.frame.size.width]

11、获取webview显示内容的宽高度

@"document.getElementById('content').offsetWidth"
@"document.getElementById('content').offsetHeight;"

12、改变字体大小

@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '150%'"

13、删除所有链接

@"$(document).ready(function () {$(\"a\").removeAttr(\"href\");})"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值