【Web前端问题】神奇的iframe现象:居然能够自动触发onclick 事件,这是什么原因??
<!doctype html><html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<button id='chg'>change</button>
<iframe id='frame' src=''></iframe>
<script>
function $id(id){
return document.getElementById(id);
}
var btn=document.getElementById('chg');
var tip=true;
btn.onclick=function(){
alert('你居然在按钮没有被按下的时候就触发了!!!');
}
(function(){
var iList=document.getElementsByTagName('iframe');
for (var i=0;i<iList.length;++i)
{
iList[i].onload=function(){
this.style.height=this.contentWindow.document.documentElement.scrollHeight+'px';
}
}
}());
</script>
</body>
</html>
回答:
兄弟这样看你看到了什么?
btn.onclick=function(){ alert('你居然在按钮没有被按下的时候就触发了!!!');
}(calegeca);
var calegeca = function() {
var iList = document.getElementsByTagName('iframe');
for (var i = 0; i < iList.length; ++i) {
iList[i].onload = function() {
this.style.height = this.contentWindow.document.documentElement.scrollHeight + 'px';
}
}
}();
尽量使用“;”号哦;在闭包前加,效果更好哦;
;(function(){ //calegeca
}())
回答:
iframe:这锅我不背。
回答:
[哭笑不得的表情]
我觉的这题可以当做面试题来考了。看了好久。。。才懂[哭笑不得的表情]
回答:
JS 大部分时候可以省略分号,除了以 () 或 [] 等开头的五种情况的时候。
回答:
btn.onclick=function(){ alert('你居然在按钮没有被按下的时候就触发了!!!');
};
这里}后面缺个分号,你竟然想让iframe背锅
回答:
所以 js 分号还是加的好。。。
回答:
看了 评论 我才看明白 问题 。。。。。
回答:
我还以为有黑科技。。
回答:
onclick方法后面没加分号。。。恰好后面跟了个自执行函数。。。
回答:
函数声明不可以直接用()调用,函数表达式可以直接用()调用。
“函数声明” 与 “函数表达式” 之间的区别就是 function 是不是那一行的句首的第一个单词。
函数声明 可以在声明所在的作用域中被调用, 函数表达式 只能在函数表达式中调用自己。
函数声明
function foo(){console.log(1)};foo(); //=> 1
函数表达式
var a = function bar(){}();!function baz(){}();
(function baa(){}());
(function draw(){
requestAnimationFrame(draw);
})();
draw(); //=> ReferenceError: draw is not defined
回答:
好吧,我没看出来!
回答:
吓到我了……
回答:
;(function(){})()
对比
;(function(){}())
对比
;function(){}()
回答:
同意楼上把这题作为面试题,在感受到js这门缺个分号就能把函数定义变成IIFE的语言的威力之后,新手再也不会忘记加分号了哈(不用分号的大神请无视)
回答:
请问我这是为什么呢
<!DOCTYPE html><html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="">
</head>
<style>
body {
font-size: 12px;
}
h1 {
font-size: 1.5rem;
}
h2 {
font-size: 1.2rem;
}
</style>
<body>
<p>哈哈哈哈哈哈</p>
<h1>hhhhhhhhh</h1>
<h2>qqqqqqqqq</h2>
<a href="#" id="size-12">12</a>
<a href="#" id="size-14">14</a>
<a href="#" id="size-16">16</a>
<script>
function changeSize(size) {
console.log(size)
return function(){
console.log(99)
document.body.style.fontSize = size + 'px';
};
};
var size12 = changeSize(12);
var size14 = changeSize(14);
var size16 = changeSize(16);
document.getElementById('size-12').onclick = changeSize(12);
document.getElementById('size-14').onclick = changeSize(14);
document.getElementById('size-16').onclick = size16;
//我们定义行为,然后把它关联到某个用户事件上(点击或者按键)。我们的代码通常会作为一个回调(事件触发时调用的函数)绑定到事件上
</script>
</body>
</html>
回答:
真是一个坑爹的问题 一不小心还不能看出来
以上是 【Web前端问题】神奇的iframe现象:居然能够自动触发onclick 事件,这是什么原因?? 的全部内容, 来源链接: utcz.com/a/143223.html