js实现路由hash和history模式

JavaScript010

js实现路由hash和history模式,第1张

hash模式是监听 hashchange 事件来实现的。

hash是监听 popstate 事件来实现的,但有点小问题需要处理一下。

history.replaceState 和 history.pushSstate 不触发 popstate 事件,这个问题可以自定义一个方法来实现。

第一步生成md5 hash串:

var reader = new FileReader()

reader.onload = function(callback) {

var md5 = rstr2hex(binl2rstr(binl_md5(reader.result, reader.result.length)))

}

document.getElementById("xxx").value=md5

第二步:获取生成的md5值

var md5value = document.getElementById('xxx').value

var obj = { '1' : 'apple', '2' : 'orange', '3' : 'pear' }var arrMsg = ['apple', 'orange', 'pear']var array = [{'111': 'apple'}, {'222': 'orange'}]123456

for(var key in obj){

console.log(key) //输出为 1 2 3

console.log(obj[key])//输出为 apple orange pear}for(var (key,value) in obj){

console.log(key) //输出为 1 2 3

console.log(value)//输出为 apple orange pear}123456789

for(var val in arrMsg){

console.log(val) //输出为 apple orange pear}123

for(var i=0i<array.lengthi++){var item=array[i] var key=Object.keys(item)

console.log(item[key])//输出为 apple orange