什么是js注入?

JavaScript05

什么是js注入?,第1张

JavaScript注入就是在浏览器地址栏中输入一段js代码,用来改变页面js变量、页面标签的内容。

使用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注入详情

参考链接:

链接一

链接二