Javascript doOnOrientationChange:无法修复加载页面的错误

2023-12-09

我用了一个.js以避免移动设备上的横向视图。我编辑了一张白色全屏图像,上面写着“此网站不适合以横向模式查看,请转动您的设备”,每次我将设备从纵向旋转为横向时都会显示该图像。 它可以工作,除非我加载页面并且我已经处于横向模式。关于如何修复它有什么想法吗?谢谢

<script>
(function() {
    'use strict';

    var isMobile = {
        Android: function() {
            return navigator.userAgent.match(/Android/i);
        },
        BlackBerry: function() {
            return navigator.userAgent.match(/BlackBerry/i);
        },
        iOS: function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i);
        },
        Opera: function() {
            return navigator.userAgent.match(/Opera Mini/i);
        },
        Windows: function() {
            return navigator.userAgent.match(/IEMobile/i);
        },
        any: function() {
            return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
        }
    };
    if (isMobile.any()) {
        doOnOrientationChange();
        window.addEventListener('resize', doOnOrientationChange, 'false');
    }

    function doOnOrientationChange() {
        var a = document.getElementById('alert');
        var b = document.body;
        var w = b.offsetWidth;
        var h = b.offsetHeight;
        (w / h > 1) ? (a.className = 'show', b.className = 'full-body') : (a.className = 'hide', b.className = '');
    }
})();
</script>

Update :

我尝试将 window.orientation 添加到脚本中,但出现了问题

if (orientation === "landscape-primary") {
    doOnOrientationChange();
    window.addEventListener('resize',doOnOrientationChange,'false');
}

window.onload(doOnOrientationChange());

您需要移动doOnOrientationChange()函数位于另一个函数之外,然后在页面加载时调用它。像这样它应该工作:

<script>
function checkMobile() {
    var isMobile = false;
    if (navigator.userAgent.match(/Android/i)
     || navigator.userAgent.match(/BlackBerry/i)
     || navigator.userAgent.match(/iPhone|iPad|iPod/i)
     || navigator.userAgent.match(/Opera Mini/i)
     || navigator.userAgent.match(/IEMobile/i)) {
            isMobile = true;
        }
    return isMobile;
}
function doOnOrientationChange() {
    var a = document.getElementById('alert');
    var b = document.body;
    var w = b.offsetWidth;
    var h = b.offsetHeight;
    if (checkMobile()) {
        (w / h > 1) ? (a.className = 'show', b.className = 'full-body') : (a.className = 'hide', b.className = '');
    } else {
        a.className = 'hide';
        b.className = '';
    }
}
window.onload = doOnOrientationChange();
window.addEventListener('resize', doOnOrientationChange, 'false');
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript doOnOrientationChange:无法修复加载页面的错误 的相关文章

随机推荐

  • 如何匹配所有国际化文本?

    我正在执行一项搜索并销毁亚马逊认为令人厌恶的任何东西的任务 过去我通过使用来处理这个问题iconv从 UTF 8 转换为 latin1 但我不能在这里这样做 因为它被编码为 未知 test lt Gwena xeblle M gt gsub
  • 写入和读取文件时的奇怪行为

    执行以下代码时 第二次读取后 文件将被填充为零 直到达到 4096 字节大 我不明白为什么 f open file txt w f read gives f write Hello f read filled with x00 x00 f
  • System.Data.dll 中发生“System.InvalidOperationException”类型的未处理异常

    我正在 Visual Studio 2008 的 SQL Server 2008 Management Studio 版本中创建与数据库的连接 我在数据库中存储了一个名为 CTable 的过程 并且我想执行它 从 Visual Studio
  • 如何在C++中删除非空目录?

    在 C 中 如何删除目录及其包含的所有文件 我知道有rmdir 但它只会删除非空目录 那么如何首先列出并删除所有包含的文件 我知道使用 Boost Filesystem 应该不难 但我有点想避免仅仅为了这个小任务而构建和依赖它 是的 您通常
  • 时间输入字段[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在构建一个表单来接受时
  • fopen 在 ios 上的奇怪行为

    我试图通过 fopen 创建一个文件然后写入它 但是发生了奇怪的事情 当我将 iPhone 插入 USB 端口时 一切正常 按预期在 tmp 目录或文档目录中创建一个文件 当我拔掉设备并执行同样的操作时 该文件没有出现 我想知道为什么 我使
  • 如何解决 webpack 5 中的 polyfill 问题?

    如果我只是将下一个 js 添加到样板 Visual Studio 2022 React JS 应用程序中 我就会开始收到错误 具体来说 在向导中创建项目 并验证其运行 后 如果我在终端中执行此操作 npm i next 然后将以下行添加到我
  • Xamarin 绑定“包装类型”缺少其本机 ObjectiveC 类

    我正在尝试将外部附件 MSR SDK 绑定到 Xamarin 请注意 这是在设备上 它在模拟器中根本不起作用 我不断收到此错误 Wrapper type iMagProII IMag is missing its native Object
  • 在 NodeJs 中从 type: 'image/png' 转换为 ZPL

    我正在做和尝试的事情 我正在尝试将从 获取的屏幕截图转换为 NodeJS 中的 ZPL 字符串 很像http labelary com viewer html这将获取图像并输出 ZPL 代码 我在做什么 我正在使用一个名为 domToIma
  • 在Python中使用阿拉伯语WordNet作为同义词?

    我试图在句子中找到阿拉伯语单词的同义词 如果这个单词是英语 它就可以完美地工作 并且结果以阿拉伯语显示 我想知道是否可以立即获得阿拉伯语单词的同义词 而无需先用英语编写它 我尝试过 但没有成功 我更喜欢没有 tashkeel nart 而不
  • 为什么 swift 这里使用结构体而不是字符串作为字典键?

    Why UIImagePickerController InfoKey类型是结构而不是字符串 使用结构而不是字符串作为字典键有什么好处 public struct InfoKey Hashable Equatable RawRepresen
  • 通过单击按钮以另一种形式更改文本

    我一直在尝试通过单击 Form2 中的按钮 form2 中的button1 是 STARTA 来更改 Form1 中文本框的文本 现在可能花了 2 个小时 我是编程新手 我一直在寻找类似的问题并发现了很多 但即使在尝试了很多之后我也无法让它
  • 在java中查找天数差异

    在咨询了几个论坛后 我最终使用下面的代码来查找天数差异 但是 我发现逻辑有问题 可能是我的疏忽 我发现 11 至 14 日和 11 至 15 日之间的天数差异是相同的 这怎么可能 Date createdDate new Date 2013
  • 颤动 ListView 滚动到索引不可用

    我需要什么 我想按某个索引滚动列表 我该怎么做 我知道的 scrollToIndex应该从第 n 个索引开始 但是我们如何滚动到任意索引呢 不幸的是 ListView没有内置的scrollToIndex 函数方法 您必须开发自己的方法来测量
  • 如何通过成员变量调用函数?

    玩弄 Rust 我将一些代码提取到一个类中 为了保持它独立但独立的功能 我想保留一个回调函数并稍后调用它 为了保持简单 包括跳过明显的内容fn new 我们有这样的东西 pub struct Toy go fn count i16 gt S
  • 用delphi在屏幕截图中显示鼠标光标

    你好 我正在制作一个delphi xe功能 该功能是截图 一切顺利 但问题是我在任何拍摄的图像上都看不到鼠标光标 代码如下 procedure capturar pantalla nombre string Credits Based on
  • 无法从浏览器访问 IIS 容器 - Docker

    Windows 版本 Windows Server 2016 适用于 Windows 的 Docker 版本 18 09 0 我尝试按照中的步骤操作https learn microsoft com en us virtualization
  • 了解 Webstorm 上的 Typescript 定义文件

    我今天开始将 Typescript 与 Webstorm 一起使用 我对正在发生的事情有了真正疯狂的了解 想象一个项目使用tsd加载定义类型typings 对于背景 angular定义一个angular模块别名为ng然后还有其他的d ts将
  • 升压asio SO_REUSEPORT

    我正在使用 boost 库开发多进程套接字服务器 每个进程运行一个io service 我希望这个进程都在同一端口上接受 I know SO REUSEPORT Linux 内核 3 9 之后 会有所帮助 就像这个 python 脚本 im
  • Javascript doOnOrientationChange:无法修复加载页面的错误

    我用了一个 js以避免移动设备上的横向视图 我编辑了一张白色全屏图像 上面写着 此网站不适合以横向模式查看 请转动您的设备 每次我将设备从纵向旋转为横向时都会显示该图像 它可以工作 除非我加载页面并且我已经处于横向模式 关于如何修复它有什么