javascript - 调整浏览器窗口大小时,addEventListener 'resize' 不会触发
问题描述
我需要检测手机视口宽度的变化。我使用以下代码来检测浏览器窗口的调整大小更改,但是当窗口调整大小时 addEventListener 不会触发我的函数:
<html>
<head>
</head>
<body>
<div id="size">-</div><br>
<div id="orientation">-</div>
<script>
window.addEventListener('resize', sizeChanged() );
function sizeChanged() {
var w=window.outerWidth;
var h=window.outerHeight;
var txt='<b>sizeChanged:</b><br> W=' + w + 'px<br> H=' + h+'px';
document.getElementById('size').innerHTML=txt;
console.log(txt);
}
window.addEventListener('orientationchange', orientationChanged() );
function orientationChanged() {
var w=window.outerWidth;
var h=window.outerHeight;
var txt='<b>orientationChanged:</b><br> W=' + w + 'px<br> H=' + h+'px';
document.getElementById('orientation').innerHTML=txt;
console.log(txt);
}
</script>
</body>
</html>
我用 FF 62.0.3、Chrome 70.0.3538.77 和 IE11 尝试了上面的代码。
有谁知道我的代码有什么问题?
解决方案
你突然调用了这些函数,所以基本上,你从这些函数中传递了结果,在这种情况下,undefined
.
您需要将函数作为参考(参数)传递,例如,
window.addEventListener('resize', sizeChanged); // Look at the missing parentheses.
window.addEventListener('orientationchange', orientationChanged); // Look at the missing parentheses.
推荐阅读
- php - nodeList 的 print_r 不起作用
- gtk - GtkTreeIter 指针失败
- android - 即使设置正确的意图过滤器,也会出现“未找到默认活动”
- c# - LINQ IN where 查询
- angular - 为什么 RXJS angular behaviorSubject 发出多个值
- angular - 更新到 Angular 6 [WDS] 加载后在 IE 上断开连接
- java - 在 Java Selenium 中移动鼠标后单击元素
- asp.net - 我的代码如图所示,我收到此错误“剩余文本似乎不是公式的一部分”>
- mysql - MySQL 服务器连接失败
- javascript - 哈希方法在服务器上返回未定义