使用Javascript注入,用户不需要关闭或保存网页就可以改变其内容,这是在浏览器的地址栏上完成的。命令的语法如下:
javascript:alert(#command#)
一、js实现时间代码
<script type="text/javascript">function showtime(){
var date=new Date()
var year=date.getFullYear()
var month=date.getMonth()+1
var day=date.getDay()
var hours=date.getHours()
var minutes=date.getMinutes()
var seconds=date.getSeconds()
if(day==0){
day=='日'
}
if(seconds<10){
seconds="0"+seconds
}
if (minutes<10) {
minutes="0"+minutes
}
if (hours<10) {
hours="0"+hours
}
var time=year+"/"+month+"/"+day+" "+hours+":"+minutes+":"+seconds
var o=document.getElementById("box")
o.innerHTML=time
setTimeout(showtime,1000)
}
showtime()
</script>
二、注意点
(1)用给变量赋予时间函数,月份要+1;
(2)将时间封装在函数中,好使用setTimeout(showtime,1000)
(3)var o=document.getElementById("box")()中写入想加到的div中的id选择符
(3)o.innerHTML=time是在HTML调用函数重要的语句
(4)该js必须放在想添加的div下面
由于UIWebview即将废弃,相比较于WKWebview,通过测试即可发现UIWebview占用更多内存,且内存很夸张。WKWebView网页加载速度也有提升,但是并不像内存那样提升那么多。下面列举一些其它的优势:
WKScriptMessageHandler是因为我们要处理JS调用OC方法的请求。
WKScriptMessage有两个关键属性name 和 body。
因为我们给每一个OC 方法取了一个name,那么我们就可以根据name 来区分执行不同的方法。body 中存着JS 要给OC 传的参数。
ocAddAction方法在js文件中并没有定义
实现WKNavigationDelegate协议方法,执行之后会在WKScriptMessageHandler代理方法中拦截到 ocZRAction
动态修改alert系统函数的实现,当js中调用alert函数时,触发的是我们自定义方法
URL Scheme拦截的问题,这里不做赘述,请看 demo
JS注入详情
参考链接:
链接一
链接二