为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能怎么用,如果想实现这个目的,应该怎么做?

为什么不能怎么用,如果想实现这个目的,应该怎么做?

哆啦的时光机 2022-07-26 19:15:22
我都不知道怎么描述这个问题:「Window.location.href=js变量); 」(业余爱好,初学,勿喷)代码如下: <script> window.onload = function () { var url = window.location.search; var request = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); var strs = str.split("&"); for (var i = 0; i < strs.length; i++) { request[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]); } } var keyword = document.getElementById("key"); var stays = request["stays"]); var address = request["address"]); keyword.innerHTML = request["keyword"]; setInterval("myInterval()", stays ); function myInterval() { window.location.href= address ; } } </script>
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

这是因为你这个address并不是全局变量,当setInterval中的计时器触发运行myInterval函数时,它需要在全局查找这个address变量,而它并不存在,所以出错。
传统方法是把address设为全局变量,即在window.onload的上面加一行 var address; 然后在赋值的时候 address = request... 即可(不需要var了);
也可以这样:把 setInterval("myInterval()", stays ); 改为(myInterval函数不需要了):
setTimeout("location.href='"+address+"';", stays);
此外还可以使用闭包的方法,以及ES6的let,这些就不多说了。

查看完整回答
反对 回复 2022-08-01
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号