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

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);
}

不负相思意
浏览 921回答 2
2回答

哈士奇WWW

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

呼如林

里面是要点击后执行,外面是直接执行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript