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

请问JS变量放在click里面和外面的区别?

请问JS变量放在click里面和外面的区别?

不负相思意 2018-07-04 10:06:12
btn.onclick=function(){var iframe = document.getElementsByTagName("iframe")[0];var oldNode=iframe.contentDocument.getElementById('myNode');var newNode=document.importNode(oldNode,true);document.body.appendChild(newNode);}这个能执行,下面就执行不了var iframe = document.getElementsByTagName("iframe")[0];var oldNode=iframe.contentDocument.getElementById('myNode');var newNode=document.importNode(oldNode,true);btn.onclick=function(){document.body.appendChild(newNode);}
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

放在click外面的代码是在页面刚调入内存的时候就立刻执行的,这个时候页面的整体结构尚未完全调入,所以读取页面元素的操作很可能会失败(尤其是当js代码是放在DOM元素前面的时候,比如head区域内)!而放在click里面的话,则表示是在按钮点击后才执行的,这当然就没问题啦(因为这个时候整个页面肯定都已经调入内存了)!

如果一定要放在click外面(事实上也推荐这么做,因为可以避免重复执行代码),那么改成下面这样就没问题了:

https://img1.sycdn.imooc.com//5b59d4200001e45e07420156.jpg

查看完整回答
反对 回复 2018-07-26
?
呼如林

TA贡献1798条经验 获得超3个赞

里面是要点击后执行,外面是直接执行

查看完整回答
反对 回复 2018-07-26
  • 2 回答
  • 0 关注
  • 998 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信