document.onkeypress = function(beeboy){
key = beeboy['key'] //拿到用户按的键
website = hash[hey] ///得到键对应的网站
location.href = 'https://' +website //把当前地址变成对应地址
window.open('https://' +website, '_blank') //模拟用户新开页面
如何编辑hash
image.png
添加+ buttonX = document.createElement('button')
buttonX.textContent = '编辑'
kbdXXXXX.appendChild(buttonX)
buttonX.onlick = function(kkp){
console.log(buttonX)
}
buttonX是一个容器,第一次循环时候,button里撞的是第一个按钮
,第二次循环装的第二个,26个按钮过了一边,最后一个留在了容器里
buttonx里面是时刻变动的
所以console.log(kkp.target['id'])我取这个hash里面target对应的哈希
修改前
buttonX.onclick = function(kkp){
key = kkp['target']['id']
x = prompt('给我一个网址')
hash[key] = x
hash的变化是怎么样
y这个键永远只对应一个网址,如果要对应多个,就需要改数据结构
刷新页面后再consoleY,会发现y失踪
因为每次刷新页面,之前页面js都消失,再重新执行js,hash也是新的hash。
新hash没有被指定
有什么办法能让hash一直留在这个页面,不会因为用户刷新页面在下一个页面消失
答,在另外地方存js结果
一开始有个哈希,用户点了一次编辑 哈希就变成了第二个哈希 ,如果用户刷新页面,哈希就没了,需要在用户刷新之前,把哈希存到另一个地方去localstorge
编辑以后马上存
localStorage.setItem('uuu',)有限制,只能存字符串
在 f12 application里查询
总结
1.声明一个二维数组,一个哈希
image.png
2.如果发现已经存过了数组,就把现在的哈希覆盖原来的哈希
image.png
3.遍历这个key,生成多个kbd标签,然后再每个kbd标签添加一个按钮,同时在按钮上做一个标记,标记他对应的id是q还是w
image.png
4.按钮被点击的时候吗,去包含所有事件信息的哈希里取target,因为target才是用户点击的元素,buttonX不是用户点击的元素,kkp[‘target’]只要取到['id'],就是用户点击的qwert,然后问用户要输入一个网址,只要用户输入,就改变这个hash,只要哈希一改变,就存档一下,方便用户刷新时候读档
image.png
5.用户点击摸一个按钮时打开哈希里面对应的网址,同时要求新标签打开
image.png
逻辑不复杂,代码复杂,学习js的基本语法,如何声明一个对象,如何去写if的,js的if必须加圆括号
网友评论