javascript - 设置 window.onload 和 window.onresize 时出现问题

标签 javascript

<script type="text/javascript">
    window.onload = widthFunction();
    window.onresize = function widthFunction(){
        var viewportWidth;
        var fouronefour;
        rotdiv = document.getElementById("rotationdiv");
        viewportWidth = window.innerWidth;
        fouronefour = 414;
        if(parseInt(viewportWidth) < parseInt(fouronefour))
        {rotdiv.style = "visibility:visible;";}
        }
</script>

<body>
<div id="rotationdiv" style="visibility:collapse;">If you would like to see more columns, click <a href="WiderPage.aspx">here</a>.</div>
</body>

我知道window.onload = widthFunction();有问题。我基本上希望这个函数做的是“在加载和调整大小时,检查屏幕尺寸。如果屏幕尺寸超过 414px,则显示 div 要求客户端转到更宽的页面。”

这是一个带有许多边界字段的 GridView 。我想我会尝试这个,因为我正在将我的网站缩小到移动浏览器

最佳答案

去掉第一行中的括号。

window.onload = widthFunction;

实际上,它将 widthFunction 的返回设置为 onload 事件 - 这是未定义的。

编辑: 实际上,如果你的浏览器正确实现了 JS(就像你不在 IE 中一样),我相信这仍然行不通 - 名称 widthFunction 不会在函数本身之外定义。您必须首先在外部定义 widthFunction,使用

function widthFunction() {
    ...
}

var widthFunction = function() {
    ...
}

另外,为什么要将 414 设置为一个奇怪命名的变量,然后对其进行解析?由于您已经在使用数字类型,因此您的 parseInt 没有执行任何操作。另外,如果您要将 414 放入变量中,您不妨给它一个更有意义的名称。 “fouronefour”无助于摆脱魔法常量。

关于javascript - 设置 window.onload 和 window.onresize 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6864024/

相关文章:

javascript - 这是将 JSON 解析为 var 的正确方法吗?

javascript - 如何使该变量成为CSS属性的值?

javascript - AngularJS 选择/ng-选项

javascript - 如何使用弹出窗口内的按钮关闭弹出窗口?

javascript - 无需重新连接数据库的 Ajax 查询

javascript - 使用 localstorage.clear() 但排除 1 项

javascript - CSS DOM Traversal 优于 JavaScript DOM Traversal?

javascript - Android WebView : parallel Loading, 布局和 Javascript

javascript - 如何将 div 移动到具有多个元素的元素中的最后一个子元素?

javascript - 用 JSON 模拟文件系统